驱动模块
产品简介
驱动模块是一款6路10A继电器直流控制、6路1A继电器直流控制、4路10A继电器220V交流控制的汽车级驱动控制模块。
驱动模块具有1路RS232、1路485通讯接口,系统可同时支持RS232和RS485接口通信;系统预留CAN总线,可升级为CAN总线通信接口。
车载驱动模块支持宽范围(8-30V)电源输入,驱动器采用Ti高性能MCU,可实时处理控制响应,板载RTC实时时钟,可精确查询设备当前时间和状态。硬件整体采用铁壳设计,具有超强的抗干扰能力。
车载驱动模块可选配交流电能计量模块,实时统计负载的电压、电流、功率和电能等多个交流电量参数,信息全。
车载驱动模块可以通过串口和计算机相连,根据用户需要及时升级系统固件以支持客户的新需求。
TY_Driver_12V车载驱动模块采用通讯协议:标准的Modbus RTU协议,兼容性好,方便客户使用计算机、PLC、组态屏等编程。
资源地址及通信协议
1.1 通信协议
驱动模块都使用标准的MODBUS协议通信,MODBUS协议格式为MB-RTU。协议参考modbus协议规范文档。通信过程采用主机主动的方式,主机设置或者查询,从机应答,通信中设置从机超时时间3秒。主机指令按执行顺序下发,等待应答,再下发下一条,等待应答方式。
1.1.1 MODBUS协议
驱动模块采用标准的MODBUS协议进行通信时,只支持该模块具备的功能码。Modbus协议的报文格式如表所示:
表 Modbus协议报文格式
设备ID地址 | 功能码 | 协议命令 | CRC校验 |
---|---|---|---|
对于每个模块具备的资源地址,分配一个对应的MODBUS功能码进行操作,具体参考MODBUS RTU协议规范
1.1 驱动模块资源地址
驱动模块的资源地址分配如表所示:
表 驱动模块资源地址分配表
资源地址 | 功能说明 | 功能码 | 备注 | |
---|---|---|---|---|
继电器控制 | 0x0000-0x0000 | 继电器输出控制(0--15) | 0x0F | 每个地址单元的数据长度为2个字节(16bit) |
继电器状态 | 0x0000-0x000F | 继电器状态寄存器 | 0x01 | |
通信配置 | 0x0100-0x0102 | 通信配置寄存器查询 | 0x03 | |
0x0100-0x0102 | 通信配置寄存器设置 | 0x10 | ||
时钟 | 0x0200-0x0204 | 时钟寄存器查询 | 0x03 | |
0x0200-0x0204 | 时钟寄存器设置 | 0x10 | ||
电压 | 0x0300-0x030A | 电压状态寄存器 | 0x03 |
继电器控制:设备支持16路继电器直接或者驱动输出,其中4路12VDC 10A信号驱动,8路12VDC1A信号驱动,1路220VAC30A信号驱动,3路220VAC10A信号驱动;
继电器状态,主机可通过查询继电器状态寄存器,获取1-16路继电器的状态0表示断开,1表示连通;
通信配置,主机通过通信配置寄存器,可以查询和设置485及232通信参数;
时钟,当驱动模块配备RTC时钟功能时,主机通过查询和设置RTC时钟寄存器,可以查询和设置驱动模块的时钟;
电压,主机可通过查询电压寄存器的值,获取12V供电电压,220V供电电压的值;
1.1.1 端口资源说明
1. 继电器资源
驱动模块具有16路继电器直接或者驱动输出,占用2个资源寄存器,其资源地址映射如下所示。主机需一次将1-16路继电器,通过0x03指令码,按顺序设置能ON或者OFF,对应的bit值为1或者0。主机也可以一次将1-16路的继电器当前状态值,通过0x01指令码,一次性读入,读入值对应bit为1或者0代表继电器状态是ON或OFF
表 继电器资源地址
端口地址 | 通道号 | 说明 | |
---|---|---|---|
0x0000 | 继电器资源1-8 | 1-8路继电器按顺序排列 | 低位 |
继电器资源9-16 | 9-16路继电器按顺序排列 | 高位 |
注: 每个地址单元的数据长度为2个字节(16bit),低位(低8bit)在前,高位(高8bit)在后。
继电器资源1-8:
bit0 ---》 继电器1 0:断开 1:导通
bit1 ---》 继电器2 0:断开 1:导通
bit2 ---》 继电器3 0:断开 1:导通
bit3 ---》 继电器4 0:断开 1:导通
bit4 ---》 继电器5 0:断开 1:导通
bit5 ---》 继电器6 0:断开 1:导通
bit6 ---》 继电器7 0:断开 1:导通
bit7 ---》 继电器8 0:断开 1:导通
继电器资源9-16:
bit0 ---》 继电器9 0:断开 1:导通
bit1 ---》 继电器10 0:断开 1:导通
bit2 ---》 继电器11 0:断开 1:导通
bit3 ---》 继电器12 0:断开 1:导通
bit4 ---》 继电器13 0:断开 1:导通
bit5 ---》 继电器14 0:断开 1:导通
bit6 ---》 继电器15 0:断开 1:导通
bit7 ---》 继电器16 0:断开 1:导通
设置多线圈数据格式为:
设备ID地址 0x01 | 功能码 0x0F | 起始地址 0x0000 | 继电器数量 0x0010 | 字节数 0x02 | 继电器值 0x0000 | CRC校验 0xE220 |
---|---|---|---|---|---|---|
模块应答数据:
设备ID地址 0x01 | 功能码 0x0F | 起始地址 0x0000 | 继电器数量 0x0010 | CRC校验 0x5407 |
---|---|---|---|---|
读取多线圈数据格式为:
设备ID地址 0x01 | 功能码 0x01 | 起始地址 0x0000 | 继电器数量 0x0010 | CRC校验 0x3DC6 |
---|---|---|---|---|
模块应答数据:
设备ID地址 0x01 | 功能码 0x01 | 字节数 0x02 | 继电器值 0xFFFF | CRC校验 0xB84C |
---|---|---|---|---|
设置单线圈数据格式为:
设备ID地址 0x01 | 功能码 0x05 | 起始地址 0x000C | 继电器值 0xFF00 | CRC校验 0x4C39 |
---|---|---|---|---|
模块应答数据:
设备ID地址 0x01 | 功能码 0x05 | 起始地址 0x000C | 继电器值 0xFF00 | CRC校验 0x4C39 |
---|---|---|---|---|
ON
Tx:342-01 05 00 0C FF 00 4C 39
Rx:343-01 05 00 0C FF 00 4C 39
OFF:
Tx:344-01 05 00 0C 00 00 0D C9
Rx:345-01 05 00 0C 00 00 0D C9
继电器驱动模式如下:
2. 通信参数资源
驱动模块具有RS485和RS232两种通信模式,可同时支持两个通道的通信。通信参数资源占用2个资源寄存器,其资源地址映射如下所示。
表 通信参数资源地址
端口地址 | 资源内容 | 说明 | |
---|---|---|---|
0x0100 | 485地址 | 485通信的地址码资源 | |
485串口参数 | 通信波特率和奇偶校验 | ||
0x0101 | 不使用 | 预留字节 | |
232串口参数 | 通信波特率和奇偶校验 |
注:
1、232串口通信没有地址信息,默认填00
2、RS485和RS232通信,通信波特率和奇偶校验的具体定义如下
高4位:代表奇偶校验模式
00:偶校验
01:奇校验
02:不校验
低四位:代表波特率
0:1200
1:2400
2:4800
3:9600
4:19200
5:38400
6:57600
7:115200
设置数据格式为:
设备ID地址 0x01 | 功能码 0x10 | 起始地址 0x0100 | 寄存器数量 0x0002 | 字节数 0x04 | 参数值 01 27 01 27 | CRC校验 0x0E42 |
---|---|---|---|---|---|---|
模块应答数据:
设备ID地址 0x01 | 功能码 0x10 | 起始地址 0x0000 | 寄存器数量 0x0002 | CRC校验 0x4034 |
---|---|---|---|---|
读取数据格式为:
设备ID地址 0x01 | 功能码 0x03 | 起始地址 0x0100 | 寄存器数量 0x0002 | CRC校验 0xC5F7 |
---|---|---|---|---|
模块应答数据:
设备ID地址 0x01 | 功能码 0x03 | 字节数 0x04 | 参数值 01 27 01 27 | CRC校验 0xB84C |
---|---|---|---|---|
3. RTC时钟资源
驱动模块可以配置RTC实时时钟资源,当硬件资源配置有RTC时,主机可通过RTC时钟资源设置和查询RTC时钟信息。RTC时钟资源占用4个资源寄存器,其资源地址映射如下所示。
表 RTC时钟资源地址
端口地址 | 资源内容 | 说明(HEX格式) | |
---|---|---|---|
0x0200 | 秒 | 00-59秒 | |
分 | 00-59分 | ||
0x0201 | 时 | 0-23时 | |
星期 | 0-6星期 | ||
0x0202 | 日 | 01-31日 | |
月 | 00-11 | 对应1-12月 | |
0x0203 | 年 | 年数 | 1900年开始 |
保留 | 填00 |
注:
设置数据格式为:
设备ID地址 0x01 | 功能码 0x10 | 起始地址 0x0200 | 寄存器数量 0x0004 | 字节数 0x08 | 参数值 01 00 0A 01 01 01 0D 14 | CRC校验 0x193D |
---|---|---|---|---|---|---|
模块应答数据:
设备ID地址 0x01 | 功能码 0x10 | 起始地址 0x0200 | 寄存器数量 0x.0004 | CRC校验 0xC072 |
---|---|---|---|---|
读取数据格式为:
设备ID地址 0x01 | 功能码 0x03 | 起始地址 0x0200 | 寄存器数量 0x0004 | CRC校验 0x45B1 |
---|---|---|---|---|
模块应答数据:
设备ID地址 0x01 | 功能码 0x03 | 字节数 0x08 | 寄存器值 26 05 0A 05 01 01 71 14 | CRC校验 0xFA23 |
---|---|---|---|---|
4. 电压测量资源
驱动模块内部会实时监测设备的电源供电信息以及接入220V控制路继电器的220V电压信息,主机可以通过查询电压测量保持寄存器来查询当前值。模块具备内部板上温度测量功能的,测量的温度也在此资源里可查询。
表 电压测量资源地址
端口地址 | 资源内容 | 说明 | |
---|---|---|---|
0x0300 | 220V电源电压 | 单精度浮点数 低位15--8 | Float原值ABCD modbus按 CD AB |
单精度浮点数 低位7--0 | |||
单精度浮点数 高位15--8 | |||
单精度浮点数 高位7--0 | |||
0x0304 | 220V负载电压 | 单精度浮点数 低位15--8 | |
单精度浮点数 低位7--0 | |||
单精度浮点数 高位15--8 | |||
单精度浮点数 高位7--0 | |||
0x0308 | 12V车辆电源电压 | 单精度浮点数 低位15--8 | |
单精度浮点数 低位7--0 | |||
单精度浮点数 高位15--8 | |||
单精度浮点数 高位7--0 | |||
0x030C | PCB主板工作电压 | 单精度浮点数 低位15--8 | |
单精度浮点数 低位7--0 | |||
单精度浮点数 高位15--8 | |||
单精度浮点数 高位7--0 | |||
0x0312 | 板上温度 | 单精度浮点数 低位15--8 | |
单精度浮点数 低位7--0 | |||
单精度浮点数 高位15--8 | |||
单精度浮点数 高位7--0 |
注:
1、电压测量值为浮点数表示,即4byte表示一个浮点数,协议规定每个寄存器为short型,因此,需要2个寄存器值表达一个电压的浮点数值。此时2寄存器的值也遵循低位在前,高位在后的规则,如:
寄存器0x0300-0x0301的值为
0x0300 80 33
0x0301 41 E6
根据ModBus的低位在先,高位在后规则,首先要把高16byte和低位16byte交换,
应该为浮点数41 E6 80 33 ,
变为32位二进制数:0100 0001 1110 0110 1000 0000 0011 0011
其中最高位为0,代表是正数
接下来的八位:100 0001 1变成十进制是131,根据IEEE规范应减去127得4,这是小数点右移的位数;
剩下的23位是纯二进制小数即:0.110 0110 1000 0000 0011 0011
底数左边省略存储了一个1,加1后得1. 110 0110 1000 0000 0011 0011
小数点右移4位后得11100.110 10000000 00110011
整数部分:
=12^4+12^3+12^2+02^1 +0*2^0=28
小数部分: =12^-1+12^-2+02^-3+12^-4+02^-4+02^-5+02^-6+02^-7+
02^-8+02^-9+02^-10+02^-11+02^-12+12^-13+12^-14+02^-15+02^-16+12^-17+1*2^-18
=0. 8125972
表示IEEE754标准的32位浮点数单精度浮点数值28.8125972。
3、温度值为PCB IC内部温度值,仅供设备过温状态监测使用,不能表示当前室温。
ModBus tools float CD AB 格式显示
寄存器地址768 数量 10 Tx:01 03 03 00 00 0A C5 89
Rx:1873-01 03 14 00 00 00 00 00 00 00 00 85 1F 41 3F CC CD 41 40 33 33 41 A3 1E 54
0 ,0 ,11.97,12.05,20.4
读取数据格式为:
设备ID地址 0x01 | 功能码 0x03 | 起始地址 0x0300 | 寄存器数量 0x000A | CRC校验 0xC589 |
---|---|---|---|---|
模块应答数据:
设备ID地址 0x01 | 功能码 0x03 | 字节数 0x14 | 寄存器值 33 80 41 E6 A1 89 41 3A 64 4A 43 3C B9 5D 41 2F 87 ED 3E 1D | CRC校验 0xFA23 |
---|---|---|---|---|
接线方式:
1、 电源由9.5mm端子输入
2、 RS232、RS485通信线由5557连接,12V输出信号可以给开关盒供电
3、 1—12对应继电器1-12输出,导通时输出12V.(1-6路为10A输出 7-12路为1A输出)
4、 L1—L4对应13 14 15 16继电器输出,导通时输出220V
5、 本驱动模块采用的是总线输出,因此外部负载重时,尽量采用外部扩展继电器输出方式驱动。