新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机双串口同时通讯的实现

单片机双串口同时通讯的实现

作者:时间:2012-04-01来源:网络收藏

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.

数字通信相关文章:数字通信原理


通信相关文章:通信原理


电能表相关文章:电能表原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭