一种基于ARM的远程电表抄表系统集中器的设计方案
主机输出/从机输入数据线MOSI(SDI)和低电平有效的从机选择线CS。SPI以主从方式工作,通常有一个主设备和一个或多个从设备。
图3为ARM与Flash的连接电路图。以下几点说明:(1)SCL串行时钟信号,由主设备产生;(2)SDO主设备数据输出,从设备数据输入;(3)SDI主设备数据输入,从设备数据输出;(4)CS为片选,从设备使能信号,由主设备控制。(5)对7、15、16角外接上拉电阻,提高芯片输入信号的噪声容限增强抗干扰能力。
图3Flash接口硬件电路图
3 集中器软件设计
集中器系统采用数序程序设计,按功能模块设计程序,由主程序调用各个功能模块程序实现各个相应功能,各个功能模块通过调用底层函数完成相应的操作。具体流程见图4,启动后,开始初始化系统。系统进入等待命令模式,如果有上位机操作命令或有定时中断发生则进入对时程序,对时如果超出一定时间还未成功则向上位机报警。
对时成功后,集中器继续等待上位机的读数命令或等待中断读数命令。当收到读数的命令后,定时读数使集中器按设置的时间,自动读取表头采集来的数据;读数使集中器读取当前表头的数据。
图4系统软件流程图
集中器通过CAN总线可以挂载最多100个表头,集中器发出CAN总线设备的ID。每个分系统表接收到对应的ID号后,根据系统发出的读表头命令来反馈数据。如果CAN通讯有故障,CAN控制器通讯将报故障。如系统回路正常,集中器的发送命令数据包。每帧CAN数据包含8字节,因为每次读数的数据流量不是很大,所以每次通讯只需要使用一帧CAN数据即可,表头ID使用帧ID来识别,每个表头对应独立的帧ID。
集中器发送CAN数据命令包到CAN总线,表头根据各自的ID选择接收读表命令后发送应答数据到CAN总线上。
集中器将接收到的应答数据提取出电表读数存储在flash中。CAN数据收发工作流程如图5所示。
图5数据收发流程图
4 结束语
本设计作为智能电表抄表系统的一部分,目前成功应用于某些远程抄表系统中,由于成本适中、性能稳定,取得了较好的经济效益,具有很好的推广前景,同时经过简单的修改就可以开发出其他的远程抄表系统,如燃气远程抄表系统等。
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)