F2812 控制芯片除了负责对光伏你变系统电路的控制、数据的采集之外,还负责与上位机
之间实现数据的传输。
SCI 是 Serial Communica tion Interface 的简称,即串行通信接口。SCI
是一个 双线 的异 步串口,具有接收和发 送两 根信号线 的异 步串口,一般 可以看作是
UART(通用异步接收/发送装置),X281x 的 SCI 模块支持 CPU 与采用 NRZ(非归零)标准格
式的异步外围设备之间的数据通信。
RS-485 采用的是差分传输方式,使得在通信速率、抗干
扰和传输距离方面都有较大的改善和优点。本文中就是采用
SN65LBC184 芯片将 SCI 设计
成串口
RS485,控制芯片 F28 12 就能够和使用 RS232/USB/RS85 等接口的设备实现通信。
具体的转换电路如图
2 所示。
2.2 RS485 到 RS-232 的转换
目前大部分的工控 PC 机都只是提供 RS232 接口和 USB 接口,所以为了实现 RS-485 与监
控系统的通信,需要将
RS485 转换成 RS232 电平,这里选用 HIN232 和 MAX485 芯片设计
了
RS232 和 RS485 的电平转换电路,具体如图 3 所示。
3 监控系统的软件设计
3.1 软件通信协议
监控软件显示的数据是由下位机按照一定的数据格式发送到 PC 上位机,为了保证数据
的正确性和安全性,我们这里采用的是
Modbus 协议。Modbus 协议是应用于电子控制器上
的一种通用的语言。控制器之间、控制器与网络以及和其他的设备之间都可以通过它进行相
互通信,
Modbus 协议已经成为一种工业标准。在 Modbus 通信网络中设备都必须选择相同
的传输模式和串口参数。
本系统采用 RTU 模式:
当控制器设为在 Modbus 网络上以 RTU(远程终端单元)模式通信,在消息中的每 8Bit 字
节包含两个
4Bit 的十六进制字符。这种方式的主要特点是:在同样的波特率下,可比 ASCII
方式传送更多的数据。
代码系统
·8 位二进制,十六进制数 0、、、、9,A、、、、F
·消息中的每个 8 位域都是一个两个十六进制的字符组成每个字节的位
·一个起始位
·8 个数据位,最小的有效位先发送
·1 个奇偶校验位,无校验则无
·1 个停止位(有校验时),2 个 Bit(无校验时)错误检测域
·CRC(循环冗长检测)
CRC 产生过程中,每个 8 位字符都单独和寄存器内容相或(OR),结果向最低有效位方向
移动,最高有效位以
0 填充。LSB 被提取出来检测,如果 LSB 为 1,寄存器单独和预置的值
或一下,如果
LSB 为 0,则不进行。整个过程要重复 8 次。在最后一位(第 8 位)完成后,下一
个
8 位字节又单独和寄存器的当前值相或。最终寄存器中的值,是消息中所有的字节都执行
之后的
CRC 的值。CRC 添加到一帧数据中时,低字节先加入,然后高字节。
3.2 上位机的界面
3.2.1 主界面
监控系统启动后,显示主界面。利用 VC 环境下的菜单控件在主界面添加监控系统的功能
菜单,有主运行界面、串口设置、逆变器数据、历史数据、参数设置等菜单项。主运行界面在下
面详细介绍。串口设置主要是负责设置
PC 上位机串口参数设置,串口的参数设置一定要和