3 通信软件设计
3.1 网络协议
RS 485是一种硬件连接说明标准,并没有指定所使用的通信协议。为了使命令和数据能在网络上正确传输,必须在数据链路层上提供一种网络协议,当物理层的比特流出现错误时能起到检验和校正的功能。参见(见图1)远程控制网络结构简图,单片机采集子系统将采集到的
蓄电池状态上传到PC,命令控制子系统主要是接受PC机的各种命令并对充电系统进行控制。两子系统与PC机之间均采用主从协议,串口通信,其通信参数设置为:传输速度:9 600 b/s;校验位:无;数据位:8;停止位:1。
3.1.1 上位机向下位机发送控制命令
(1)上位机发送
扩展在双绞线上的每个充电模块必须有惟一的地址编号,以便保证PC机发送控制命令时能准确无误地找到所需的充电的模块。分布式模块的命令格式被分为发送与接收两部分,格式如下:
每一帧代表的信息如下:
起始位:单片机与PC机之间通讯的起始标志;地址位:下位机的地址号设计为01H~1FH(即1~31),上位机的地址为00H。
命令类型:0为停机命令,1为充电命令;设定数值:控制命令为充电时,数值量为充电电流;(2)控制板返回:Y(如果接收成功则返回Y)。
3.1.2 下位机向上位机发送采集数据
(1)下位机每隔10 s间断性的发送电压电流采集值给上位机;
(2)采集板返回7个连续字符(中间不插入空格),格式如下:
前3个字符为
蓄电池端电压,接着3个为充电电流值。
蓄电池端电压用3个字符表示,如:51.2 V~512 V。充放电电流3个字符表示:15.7 A~157 A(如果电流值<10 A,左边补0,如:8.9~089)。注意:所有的字符均为10进制数值对应的ASCⅡ码。考虑到单片机要及时将采集到的数据发送出去,故使用无握手的通信机制,不等待确认帧就不停发送。另外,若接收方在约定时问内未收到数据,则发送复位帧,双方回到通信程序的开始并清空缓冲区,然后重新同步。