单位文秘网 2022-02-19 08:08:25 点击: 次
摘 要:为了转发水质监测数据,采用新型的1T周期单片机STC10F04EX为控制核心,将双4选1模拟开关4052的2个公用端与单片机的RxD、TxD端连接,通过分时连通的方式,对单片机的UART进行扩展,构成一个多串口的数据转发系统。扩展的串口分别连接到3个不同的水质监测设备,以及一个与无线发射模块。单片机分时得到3个水质监测设备传来的数据,并将得到的数据通过无线模块进行转发,转发距离可达3 000 m。远离现场的计算机完成数据接收及分析。该方法用于对单片机串口扩展和远距离数据传送简洁可靠。所建的数据收发系统,可以同时连接多台串口监测设备,弥补了计算机串口较少的不足,并且功能有别于多串口卡。该系统已成功应用于多传感器水环境监测的数据转发。关键词:STC10F04EX; 串口; 收发控制; 水质监测; 无线模块
中图分类号:TN919-34; TP334 文献标识码:A
文章编号:1004-373X(2010)22-0199-04
Data Transceiver with Multi-serial-port Based on STC10F04EX
HU Li-qun, CHEN Dun-jun
(Key Laboratory of Advanced Photonic and Electronic Materials, School of Electronic Science and Engineering, Nanjing University, Nanjing 210093, China)
Abstract: In order to transmit the data of water quality, a multi-serial-port transceiver system is established, which adopts a new 1T cyclical MCU STC10F04EX as a core component, employs the two common pins of multiplexers 4052 to connect to UART (RxD and TxD), and extends the UART of the MCU through time-sharing mode so as to form 4 serial ports. One serial port is connected to a wireless transceiving module, the others communicates with three external equipments monitoring water quality. The MCU gets the monitoring data from those serial devices and transmits through the wireless module. The transmission distance is up to 3 000 m. A computer far away from the scene receives data and analyzes it. This method is simple and reliable for UART expansion and long-distance data transfer.The transceiver can simultaneously connect multiple serial equipments, and makes up for a shortage of computer serial port. The characteristics of this transceiver is different from that of multi-serial-port card. The transceiver has been demonstrated successfully in water monitoring system with multi-sensors.Keywords: STC10F04EX; serial port; transceiving control; water monitoring; wireless module
0 引 言
RS 232串口通信是一种常用的通信方式,许多数字化设备、测量仪器都具有串行接口[1]。这些设备可以方便地与PC、PLC等控制器连接进行数据交换,从而组成一个测试检测/监测系统。
目前安装在江、河、湖等水体现场的不同种类的水环境监测设备,通过采集水样,周期性地生成一组数据通过串口向外传送。如果在现场需配置一台或多台PC,既不经济,又难以维护。本文介绍的基于单片机的多串口数据收发控制系统,可以同时连接多台不同类型的水质监测设备,现场接收采集的数据并通过无线模块向远端控制中心传递,转发传送的距离约为3 000 m[2],远远大于直接的RS 232互连。多串口数据收发控制系统不同于多串口卡,可以脱离计算机独立工作,是计算机串口扩展、延伸的一种全新方法。
用多串口数据收发控制系统取代计算机安置于监测现场,将来自于不同设备的数据进行初步整合,再通过无线方式向远离现场的中央控制室进行传送,则监测系统的可靠性、实时性、易维护性都大为增强。
1 水质监测系统的构成
本文所提及的水质监测系统,由光谱分析仪、水毒性分析仪、生物状态分析仪等组成,这些设备都具有RS 232接口,但是接口参数不尽一致,传送的数据格式也差别极大(见表1)。
这些位于水体现场的测试设备,需要及时地将测量数据传递给远端的中央控制室。
表1 水质监测系统中的串口设备及数据传送特征
设备名称接口通讯参数数据特点数据周期
光谱分析仪波特率9 600 b/s,数据8位,无校验,1位停止位。数据量较大,每次最大要传送3 600组数据,约8 000个字节。需要由接收设备发出命令,控制发送。40 s
水毒性分析仪波特率9 600 b/s,数据8位,无校验,1位停止位。数据量小,38个字节。数据处理完毕自主发送。20 min
生物状态分析仪波特率38 400 b/s,数据8位,无校验,1位停止位数据量小,12个字节。
数据处理完毕自主发送。40 s
2 多串口数据收发控制系统
2.1 多串口数据收发控制系统工作原理
多串口数据收发控制系统,以单片机STC10F04EX为控制核心,扩展出多个全双工异步串行口(UART),用以同时连接多个外部串口设备。该系统既可独立地与所连接的设备交换数据,又能起到数据中继的作用,将来自上位端的命令传递到指定的串口设备上,或将接收到的来自不同串口设备上的数据经过初步整理后发送到上位端。
由于要连接多个下位端执行设备,但STC10F04EX的独立UART只有一个,因此,必须对该单片机的UART进行扩展,才能连接多台串口设备。经过扩展的各路UART不能同时工作,必须在I/O的配合下选择对应通道分时工作。
被监测的对象所发生的变化是个缓变过程,监测系统中的各个分析仪器所要传送的数据量有限,并且接收端大部分时间处于等待阶段,控制程序在设计时已充分考虑到数据的衔接和每种设备的采样和转换周期。因此,分时连接不会造成数据丢失导致失准,可以满足监测要求。
图1显示了多串口收发控制系统的结构框图以及与3个外部串口设备的连接。该系统既可以将接收到的数据通过无线方式对外发送,也可以用有线的方式直接传递给本地电脑。
2.2 多串口数据收发控制系统硬件组成
多串口数据收发控制系统,采用型号STC10F04XE 的单片机为控制核心,外加7279A键盘及数码管驱动电路,TTL-RS232电平转换电路MAX 232,4052双4选1模拟开关,无线收发模块等组成。
STC11F04XE 的单片机,以8051为内核,并具有以下鲜明特点:抗干扰能力强,1T周期CPU,独立波特率发生器,2个可切换串口,在系统可编程(ISP),片上扩展XRAM 等[3-4]。
单片机STC10F04EX的UART可在P1口的P1.6/P1.7 (UART2) 和P3口P3.0/P3.1(UART1)间切换,可以分时当2个串口使用,这为调试系统和扩展串口带来了方便[3]。由于该系列单片机支持在系统可编程(ISP),因此系统中的UART1通过电平转换电路,直接连接到PC机的一个串口上,用于对单片机的程序下载和调试。单片机正常工作时,可将串口设置在UART2上。
图1 多串口数据收发控制系统的结构
采用双4选1模拟开关4052[5],将单片机的UART2扩展为4路。其中,单片机端的RxD/TxD分别接到4052的公共端,扩展端再由MAX232电平变换连接到外部具有串口的测量设备上。STC10F04EX 的2个I/O引脚P1.1, P1.0 与4052的通道选择线B、A分别相连,UART2的具体指向由这2条I/O选择控制。扩展的串口只能分时工作,具体分配见表2。
表2 I/O控制和UART2的指向
B(P1.1)/A(P1.0)4052导通的通道编号(双路)UART2所指向设备
0/00设备1:生物状态分析仪
0/11设备2:水毒性分析仪
1/02设备3:光谱分析仪
1/13设备4:无线模块
由于连接的不同串口设备的通信参数不完全相同,STC10F04EX必须根据设备指向动态调整串口参数以适合外部串口设备。
显示芯片7279A可以驱动8位共阴LED数码管并可采集64个键盘位置信号[6]。该系统通过数码管显示工作状态(收发,等待,时间,通道号,参数等);通过键盘不仅可以设置“多串口数据收发控制系统”自身参数和调节自身状态,还可修改/设置所连接的外部设备的传送参数。CPU通过4个I/O引脚与7279A的4条控制线CS、DATA、CLK、KEY连接,就可驱动8位数码管并对按键进行监控。为了响应及时,采用中断方式响应按键状态,因此将KEY连接到P3.2(int0)上。
无线收发模块,嵌入高性能射频芯片,采用高效循环交织纠检错编码,发送距离可达3 000 m[2]。模块具有TTL电平的UART口,因此可以很方便地与单片机的一个扩展的UART连接。向无线收发模块写入和读出数据,与一般的串口操作基本一样。无线收发模块频点、空中速率、本地串口速率、校验方式等参数可以在线设置或通过厂家提供的程序进行设置[2]。
系统中无线收发模块本地串口通信参数设为( 9 600,8,N,1),数据被调制在434 MHz进行发送和接收,空中速率9 600 b/s,发射功率100 mW。
该无线收发模块,收到数据后通常延时几十到几百毫秒才发送,所带缓存256 B。若本地串口速率大于等于空中速率,则存在数据流量问题,可能会出现数据溢出导致丢失现象[2]。因此若传送数据超过256 B,要进行数据分割,插入等待周期,采用分次发送的方式以避免数据丢失。本系统所连接的光谱仪数据量较大[7-8],因此单片机接收光谱仪数据后再经无线转发,要采用分段接收/转发方式,每次的数据量要小于256 B,多次重复,直至全部数据。
3 软件设计
3.1 有关寄存器的说明
程序运行时首先进行初始化设置,其中涉及到几个比较特别的寄存器,其定义不同于其他51系列的单片机[3]。
寄存器AUXR,地址8EH。关系到独立波特率发生器,STC10F04EX既可以采用定时器1作为波特率发生器,又可以采用独立波特率发生器以释放定时器1,见表3说明。
表3 AUXR 寄存器的位说明
位值说明
D7:T0×1201系统时钟12分频作为定时器0 输入
系统时钟不分频作为 定时器0 输入
D6:T1×120
1系统时钟12分频作为定时器1 输入
系统时钟不分频作为 定时器1 输入
D5:U_M0×60
1串口0方式,时钟12分频
串口0方式,时钟2分频
D4: BRTR0不允许独立波特率发生器运行
1允许独立波特率发生器运行
D3: 保留
D2:BRTR×120独立波特率发生器每12个时钟计数一次
1独立波特率发生器每1个时钟计数一次
D1:XRAM0允许使用内部扩展的256个字节扩展RAM
1禁止使用内部扩展的256个字节扩展RAM
D0:S1BRS0定时器1作为串口的波特率发生器
1独立波特率发生器作为串口的波特率发生器,定时器1 得到释放
寄存器AUXR1,地址A2H。其中的D7位关系到单片机内在的串口切换。例如:
AUXR1=0X80; // UART在P1口,(RxD/P1.6 ,TxD/P1.7)
AUXR1=0X0; // UART在P3口(RxD/P3.0 ,TxD/P3.1)
3.2 数据存储及转发
STC10F04EX单片机,内部数据存储器为256 B,片上扩展的外部数据存储器为256 B,共计512 B[3],数据空间紧凑。程序运行中的一些变量需要占用一部分数据空间,因此只能开辟约220个字节作为缓存空间,暂存接收到的来自串口设备的数据。如果一次接收的数据量小于缓存空间,则不会导致数据溢出;如果外部设备需传送的数据量较大,则必须与外部设备建立联络控制发送,以使每次传来的数据小于系统缓存,避免数据丢失现象的发生。
所建立的水质监测系统中,“光谱仪”给出的数据量较大,因此“多串口收发控制系统”分时连接到“光谱仪”时,采用命令应答方式控制光谱仪的数据发送[8],分批多次传送。单片机将UART指向光谱仪,首先向光谱仪发送命令,指明数据来源和传送的数据量(例如200个字节);其次等待光谱仪的响应并将传来的200个字节的数据暂存在所开辟的缓冲区中;然后再将UART切换至无线模块通道,将单片机缓存中的数据写入无线模块转发出去;重复进行上述步骤直至接收到光谱仪的全部数据。
水质监测系统中的另外2种设备的数据量相对较小,可以一次性接收/转发。
3.3 接收/转发控制流程
根据设备的不同数据周期,以时间为线索,为相应的设备分配接收/发送时间(图2),在所分配的时间里,单片机要进行UART通道切换:指向串口设备接收或发送数据、指向无线设备发送数据。
图2 程序为不同设备分配的时间示意图
程序采用中断方式处理定时、串口的数据接收/发送、键盘输入等过程[9-10]。以中断方式运行,提高了程序的执行效率。图3 为定时中断服务程序流程图。该水质监测过程,就是循环扫描3个水监测设备,获取数据并进行无线转发。
3.4 主要的程序功能模块说明
串口驱动程序为分析判断数据来源,并调用相应的函数,完成对不同串口设备的数据接收和发送。将接收到的数据暂时保存于缓存中;将缓存中的数据进行转发;
定时中断程序为周期性地切换UART通道,分别连接到外部的3个串口设备上和无线发射模块上。切换串口通道的同时,调整串口通信参数,以适应不同的串口设备。触发串口发送过程,将缓存中的数据写入无线模块转发;
INT0中断服务程序为及时响应键盘操作,然后调用相应的函数,完成参数设置等控制任务;显示程序为控制7279A驱动LED数码管,显示系统状态等信息。
图3 定时中断程序流程图
4 结 语
多串口数据收发控制系统,已应用于水环境监测的数据转发,工作稳定,数据收发可靠。
本系统为采用一片单片机控制的单核心结构,与采用多核结构相比,尽管只能分时使用UART,但数据协调相对容易,并且在设计时已考虑了数据衔接问题,不会导致数据丢失现象的发生;与采用多串口卡的方案相比,本系统可以脱离计算机独立工作,因此现场不需要一台计算机参与数据接收;无线方式数据传送,传送距离相对更远;系统占用资源少,维护成本降低。
该系统还可应用于其他的多串口数据收发场合。经过扩展,可连接的串口数目可以进一步扩大。
参考文献
[1]谢瑞和.串行技术大全[M].北京:清华大学出版社,2003.
[2]深圳市安美通科技有限公司.APC802-43多通道微功耗嵌入式无线数传模块使用手册[EB/OL]..cn.
[3]宏晶科技.STC11/10XX系列单片机器件手册[EB/OL].(2010-5-10)[2010-6-10]./datasheet/stc.
[4]宏晶科技.STC12C5410AD系列单片机器件手册[EB/OL].(2009-2-5)[2010-6-10]./datasheet/stc.
[5]李双庆,丘鹰,王向荣.常用半导体器件简明手册[M].北京:电子工业出版社,1989.
[6]比高科技有限公司.HD7279A 数据手册[EB/OL].4版..cn.
[7]Ocean Optics Inc.. USB4000 fiber optic spectrometer installation and operation manual [M/CD].[2010-09-30].http://.
[8]Ocean Optics Inc.. USB4000 data sheet[M/OL].[2010-08-18]..
[9]童长飞.C8051F系列单片机开发与C语言编程[M].北京:北京航空航天大学出版社,2005.
[10]赵建领.51系列单片机开发宝典[M].北京:电子工业出版社,2007.
(责任编辑:单位文秘网) )地址:https://www.kgf8887.com/show-203-100000-1.html
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用