单片机双串口同时通讯的实现
可选择部分或全部浏览各种自动抄表数据和实时巡测数据。
(5)方便多样的查询功能。
(6)自动故障诊断、事件记录和信息追忆功能。
(7)进行负荷分析,统计各种曲线图表。
(8)多级口令管理,防止非授权人员操作的功能。
(9)各种报表曲线图形的打印和完善的操作指南。
2.2 集中器中双串口CPU同时通讯的实现
由于集中器要实现和上位机与采集模块的同时通讯,采用一片具有双串口的CPU,该CPU具有2个串口和2个串口中断,串口1中断处理与上位机的通讯,串口2中断处理与采集模块的通讯,串口1中断设置为高优先级中断,每接塑到或发送完一个字节都进入中断处理,处理完毕立即退出中断,通讯波特率都为9 600 b/s,一个起始位和一个停止位。
首先要解决时间冲突问题,硬件接受或发送一个字节的时间为1 ms左右,而软件接受或发送一个字节的时间仅几μs,这就为双串口同时通讯提供了条件。同时通讯实际上是将CPU时间分成很小的时间片,假设较快的串口发送或接受一个字节的最长时间为TRbyteMax,则CPU最长时间片一般应小于TRbyteMax/2,当然在接受或发送完一帧数据之后的间隙,CPU时间片可以适当延长,作一些必要的数据处理。
其次要解决数据冲突问题,2个串口通讯分别使用各自的接受发送数据缓冲区和控制变量,以减少中断保护数据量和防止数据冲突。当主程序、串口2中断处理程序和其他中断处理程序往存储器(与上位机的通讯用存储器)中写数据时,需在尽量短的时间内关闭串口1中断,关闭中断时间应小于几百μs,防止其他程序数据没有写完之前串口1读此数据。
同时需要注意一些其他问题:尽量采用模块化、结构化、对象化编程,使串口通讯程序和其他程序之间、2个串口通讯程序之间相互独立,以减少发生错误的机会。另外串口通讯中,还要增加通讯超时处理机制,中断处理中要注意数据和程序状态的保护,完善出错处理程序,使用电源监测掉电保护硬件和看门狗技术等。
串口通讯数据帧中采用高可靠性的循环冗余校验(CRC)技术,极大地降低了数据误码率,在连续运行几个月的大量数据中没有发现误码。
3 结语
本系统设计采用模块化、结构化、对象化的程序设计方法,硬件冗余设计和软硬件自动故障诊断,使系统具有高可靠性和高实时性。系统使用大量报表和动态图形曲线,具有友好的人机交互界面。专用掌上电脑可现场初始化,操作简便、维修快捷。同时具有在线设置方便、硬件配置灵活多样、适用范围广、通用性好、性能价格比高等特点。
本系统已在电厂连续可靠运行,有很高的抄收成功率,抄收数据无误码。可广泛应用于大中型企业和电厂,为现代化发电用电管理提供可靠的数据来源。
本系统可做进一步改进,针对不同类型的应用,在DCS中加入相应的统计分析模块和控制单元,达到自动控制的目的。
参考文献
[1]Modicon modbus protocol reference guide.PI- MBUS - 300 Rev. J. MODICON ,Inc. ,Industrial Automation Systems . June 1996.
[2]何立民.单片机应用系统[M].北京:北京航空航天大学出版社,1992.
[3]High - speed microcontrollers . DataBook of Dallas Semiconductor Corp.1999.
- 3DES算法的FPGA高速实现(06-21)
- 基于DSP的Max-Log-MAP算法实现与优化(05-27)
- DSP中DMA操作的无阻塞请求实现(06-18)
- 二维DCT编码的DSP实现与优化(09-08)
- 基于DSP处理器上并行实现ATR算法(01-29)
- 基于DSP的H.324终端设计(05-27)