外设驱动库开发笔记30:宇电AI-BUS通讯驱动

本文详细讲解了宇电AI-BUS协议的工作原理,包括数据格式、驱动设计的实现步骤,以及如何通过AI-BUS对象操作设备的读写。重点介绍了对象定义、初始化、读写操作函数和消息解析,适合嵌入式开发者进行设备通讯编程。

嵌入式系统通常都会与外部设备进行通讯,这就涉及到通讯协议的问题。这些通讯协议有的是标准协议有的厂家自定义的协议,如宇电的AI-BUS。在本篇中,我们将讨论AI-BUS的驱动,以便于与宇电设备的通讯。

1、功能概述

宇电的设备使用基于RS-485的自定义协议,该协议称为AI-BUSAI-BUS协议采用16进制数据格式来表示各种指令代码。数据协议本身比较简单,标准的通讯指令只有两条,一条为读指令,一条为写指令:

读:地址代号+52H82+要读的参数代号+0+0+校验码

写:地址代号+43H67+要写的参数代号+写入数低字节+写入数高字节+校验码

具体结构如下图所示:

地址代号:为了在一个通讯接口上连接多台 AI 仪表,需要给每台 AI 仪表编一个互不相同的通讯地址。 有效的地址为 0~80(部分型号为 0~100),所以一条通讯线路上最多可连接 81 AI 仪表,仪表的通讯地址 由参数 Addr 决定。仪表内部采用两个重复的 128~20816 进制为 80H~D0H)之间数值来表示地址代号,由 于大于 128 的数较少用到(如 ASC 方式的协议通常只用 0-127 之间的数),因此可降低因数据与地址重复造 成冲突的可能性。 AI 仪表通讯协议规定,地址代号为两个相同的字节,数值为(仪表地址+80H)。例如:仪表参数 Addr=10

16 进制数为 0AH0A+80H=8AH),则该仪表的地址代号为:8AH  8AH

参数代号:仪表的参数用 1 8 位二进制数(一个字节,写为 16 进制数)的参数代号来表示。它在指 令中表示要读/写的参数名。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值