LINE-HEIGHT: 24px; PADDING-TOP: 0px"> 因为系统对信号传输过程中的稳定性和抗干扰能力要求很高,所以CAN接口采用高标准接口电路。电路图如图2所示。
?
图2CAN接口硬件电路图
CAN-bus接口电路采用+3.3V供电,选择CTM8251A隔离CAN收发器。该芯片是3.3V工业级的隔离CAN收发器。CTD0信号连接主控芯片的CAN控制器的发送脚,CRD0信号连接CAN控制器的接收脚。C2.2 Flash接口电路设计
集中器需要对与之相连的每个电表表头采集数据,所以数据量较大,从而对存储有着较高的要求,故选用ST的M25P64-VMF6TP。该芯片为64M串行接口闪存,增强数据传输时钟速率为50MHz;读的吞吐量为50Mbps;接口为简单的4线SPI(串行外围设备接口)接口;深度降功耗模式间断功耗,电流消耗仅为1uA。
M25P64Flash芯片,通过SPI总线与ARM相连。SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息,一般使用4条线:串行时钟线(SCL)、主机输入/从机输出数据线MISO(SDO)、主机输出/从机输入数据线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 结