嵌入式系统通常都会与外部设备进行通讯,这就涉及到通讯协议的问题。这些通讯协议有的是标准协议有的厂家自定义的协议,如宇电的AI-BUS。在本篇中,我们将讨论AI-BUS的驱动,以便于与宇电设备的通讯。
1、功能概述
宇电的设备使用基于RS-485的自定义协议,该协议称为AI-BUS。AI-BUS协议采用16进制数据格式来表示各种指令代码。数据协议本身比较简单,标准的通讯指令只有两条,一条为读指令,一条为写指令:
读:地址代号+52H(82)+要读的参数代号+0+0+校验码
写:地址代号+43H(67)+要写的参数代号+写入数低字节+写入数高字节+校验码
具体结构如下图所示:

地址代号:为了在一个通讯接口上连接多台 AI 仪表,需要给每台 AI 仪表编一个互不相同的通讯地址。 有效的地址为 0~80(部分型号为 0~100),所以一条通讯线路上最多可连接 81 台 AI 仪表,仪表的通讯地址 由参数 Addr 决定。仪表内部采用两个重复的 128~208(16 进制为 80H~D0H)之间数值来表示地址代号,由 于大于 128 的数较少用到(如 ASC 方式的协议通常只用 0-127 之间的数),因此可降低因数据与地址重复造 成冲突的可能性。 AI 仪表通讯协议规定,地址代号为两个相同的字节,数值为(仪表地址+80H)。例如:仪表参数 Addr=10
(16 进制数为 0AH,0A+80H=8AH),则该仪表的地址代号为:8AH 8AH
参数代号:仪表的参数用 1 个 8 位二进制数(一个字节,写为 16 进制数)的参数代号来表示。它在指 令中表示要读/写的参数名。
<
本文详细讲解了宇电AI-BUS协议的工作原理,包括数据格式、驱动设计的实现步骤,以及如何通过AI-BUS对象操作设备的读写。重点介绍了对象定义、初始化、读写操作函数和消息解析,适合嵌入式开发者进行设备通讯编程。
最低0.47元/天 解锁文章
9809

被折叠的 条评论
为什么被折叠?



