基于STC10F04EX的多串口数据收发系统
所建立的水质监测系统中,“光谱仪”给出的数据量较大,因此“多串口收发控制系统”分时连接到“光谱仪”时,采用命令应答方式控制光谱仪的数据发送,分批多次传送。单片机将UART指向光谱仪,首先向光谱仪发送命令,指明数据来源和传送的数据量(例如200个字节);其次等待光谱仪的响应并将传来的200个字节的数据暂存在所开辟的缓冲区中;然后再将UART切换至无线模块通道,将单片机缓存中的数据写入无线模块转发出去;重复进行上述步骤直至接收到光谱仪的全部数据。
水质监测系统中的另外2种设备的数据量相对较小,可以一次性接收/转发。
3.3 接收/转发控制流程
根据设备的不同数据周期,以时间为线索,为相应的设备分配接收/发送时间(图2),在所分配的时间里,单片机要进行UART通道切换:指向串口设备接收或发送数据、指向无线设备发送数据。本文引用地址:https://www.eepw.com.cn/article/172978.htm
程序采用中断方式处理定时、串口的数据接收/发送、键盘输入等过程。以中断方式运行,提高了程序的执行效率。图3为定时中断服务程序流程图。该水质监测过程,就是循环扫描3个水监测设备,获取数据并进行无线转发。
3.4 主要的程序功能模块说明
串口驱动程序为分析判断数据来源,并调用相应的函数,完成对不同串口设备的数据接收和发送。将接收到的数据暂时保存于缓存中;将缓存中的数据进行转发;定时中断程序为周期性地切换UART通道,分别连接到外部的3个串口设备上和无线发射模块上。切换串口通道的同时,调整串口通信参数,以适应不同的串口设备。触发串口发送过程,将缓存中的数据写入无线模块转发;INT0中断服务程序为及时响应键盘操作,然后调用相应的函数,完成参数设置等控制任务;显示程序为控制7279A.驱动LED数码管,显示系统状态等信息。
4 结语
多串口数据收发控制系统,已应用于水环境监测的数据转发,工作稳定,数据收发可靠。
本系统为采用一片单片机控制的单核心结构,与采用多核结构相比,尽管只能分时使用UART,但数据协调相对容易,并且在设计时已考虑了数据衔接问题,不会导致数据丢失现象的发生;与采用多串口卡的方案相比,本系统可以脱离计算机独立工作,因此现场不需要一台计算机参与数据接收;无线方式数据传送,传送距离相对更远;系统占用资源少,维护成本降低。
该系统还可应用于其他的多串口数据收发场合。经过扩展,可连接的串口数目可以进一步扩大。
评论