单片机双串口同时通讯的实现
扫描二维码
随时随地手机看文章
1 系统的体系结构
1.1 系统要求与总体方案设计
该系统中有单相、三相、机械式和电子式等各种型号电能表,要求实时、准确、快速、可靠地采集各分散电能表的用电量数据,适应各种复杂的工业生产现场条件,连续运行、操作简便、维修快捷。硬件系统要具有通用性、可扩展性,并能适应各种大中型发电、用电企业的电量管理。因此在系统设计中,重点考虑了以下因素:实时性、高可靠性、环境的适应性、通用性、可扩展性、经济性等。
集散控制系统DCS(Distributed ControlSystem)是一种分散控制、集中信息管理系统。由于该系统是在电厂使用,并已有DCS平台,因此采用DCS作为主站,也可采用单独的上位机来管理。DCS中采用了双前置机热后备的冗余系统设计方法,2台前置机可相互替换以提高系统可靠性。
本DCS采用Interllution iFox工控组态软件,使用工业标准总线RS422将集抄系统硬件连入前置机,进行电量分析,负荷管理,并具有图形、曲线、报表打印输出功能,可与其他网络接口。
由于采集模块一般都不少于几十个,如直接连入DCS,则测点太多,因此在DCS和采集模块之间增加一级数据集中器(简称集中器),将一个集中器作为一个测点,减轻DCS的负担和大幅度降低成本,提高了系统的性能价格比。
集中器和采集模块之间,采用工业标准总线RS485进行双向通讯。
集中器不断巡测采集模块,以统计存储各种用电数据,同时又要保证和DCS之间的正常通讯,这就要求集中器具备双串口同时通讯的能力。集中器中采用一片具有双串口的CPU(DS80C320)来实现双串口同时通讯。
本系统中的RS422,RS232、红外通讯均使用通用工业标准ModBus协议。
1.2 系统组成与功能
集抄系统由电量采集模块、数据集中器、专用掌上电脑和DCS经RS422和RS485总线灵活配置而成。集抄系统组成图如图1所示。采集模块通过检测机械式电表表盘的转数或电子式电表输出的脉冲数,转换成电表用电量,经RS485总线将用电量数据上传。采集器中保存的用电量数据与原有电表上的用电量窗口显示值相一致。安装采集器后不改变原有电表的整体结构和计量精度。
采集模块具有独立的CPU和非易失性断电保持存储器及工作状态灯指示。可现场设置初始参数。故障自动保护。适应现有各种型号的机械式、电子式电能表。
集中器负责各电表用电量数据的集中收集,处理和存储。通过RS485总线与采集模块通讯,读取每个采集模块中存储的用电量数据。每台集中器最多可管理256台电表。经RS422总线可与DCS之间进行双向通讯,接受DCS的各种集中器具有独立的CPU和非易失性断电保持存储器,可存储当前用电量数据和历史用电量数据。内部有实时时钟,断电后继续保持走时。故障自动诊断,并将异常状态上报DCS。可与其他系统(SCADA,MIS)直接进行接口。
DCS通过RS422总线与集中器进行双向通讯,读取集中器中存储的各电表当前用电量数据和历史用电量数据。用电量数据经DCS的记录存储及分析处理,为有关部门提供用电状况的统计分析和管理。每个DCS可管理64个集中器。
DCS具有系统运行参数设置、校时、事件记录管理、曲线图形报表打印输出功能。实时读取并显示各电表的用电量数据,进行用电量数据分析。可与其他网络接口,将数据传输给其他系统(SCADA,MIS)供分析处理。
专用掌上电脑又称掌上终端机。当掌上电脑安装上相应的软件后,利用红外口现场初始化采集模块,利用红外口/RS232口现场初始化集中器、抄取数据、状态信息等,是系统维护的重要工具。笔记本电脑也具有同样的功能。
2 集抄系统软件设计与实现
集抄系统软件包括DCS软件、集中器软件、采集模块软件和专用掌上电脑软件。其中集中器和采集模块软件用汇编语言编写,专用掌上电脑软件用专用掌上电脑编程语言实现。下面主要介绍DCS集抄系统软件和集中器中双串口CPU同时通讯的实现。
2.1 DCS集抄软件
DCS集抄系统软件采用Interllution iFox工控组态软件,在Windows 95(以上)和Windows NT系统软件平台下完成,使用电厂流行的动态图形对象和按键操作主窗口,类似Excel的表格大量用于数据录入与显示,美观简便的对话框和图形曲线人机界面设计,使用户操作快捷方便。DCS集抄软件主要包括下列功能:
(1)系统配置灵活方便可在线任意增删集中器和采集模块,修改各种运行参数和电表用户信息。
(2)实时巡测、选抄功能可选择抄收一个或几个指定电表的当前电量,可选择不间断巡测部分或全部电表用户的实时数据。
(3)自动抄表功能可指定自动抄收时间间隔,自动抄收整点数据、每隔可选时间间隔的全部电表数据、每天指定的几个抄表时刻的电量数据等。
(4)可选择部分或全部浏览各种自动抄表数据和实时巡测数据。
(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.