网关的软件设计采用嵌入式操作系统μc/os-ⅱ,它具有较小的内核结构,开发成本小,执行效率高,移植也容易。初始化文件通过jtag下载到网关并保存在flash中。
该设计的关键是编写can驱动程序,主程序通过调用can驱动程序实现接口数据的收发,驱动程序包括can控制器的初始化、接收数据、发送数据和总线异常处理。
can控制器的初始化
初始化操作包括硬件使能can、软件复位、设备报警界限、设置总线波特率、设置中断工作方式、设置can验收过滤器工作方式、设置控制器的工作模式和启动can等。
lpc2294片内外设与引脚的连接由引脚连接模块控制。can控制器的硬件使能就是通过软件设备gpio寄存器来控制多路开关,将特定的引脚与can控制器连接起来。
数据的接收与发送
lpc2294的每个can控制器中有3个发送缓冲区,发送数据时先查询cansr寄存器是否空闲,若空闲才能写入数据,然后判断报文的类型,根据报文类型调用相应的发送函数,即对数据进行封装并写入发送缓冲区,最后调用发送命令。
为了提高效率,接收数据采用中断方式,首先在canopen的初始化程序中要使能接收中断,当有中断发生,读取canicr寄存器,判断接收中断标志是否置位。
异常处理
在总线发生严重故障的情况下,can节点脱离总线,此时下述寄存器位被置位为cansr的bs位、canir的bei位和ei位(如果使能)和can-mod的rm位。
rm将许多can控制器功能复位和禁止。软件下一步必须置零rm位。发送错误计数器将递减计数总线释放条件(11个连续的隐性位)的第128个错误。
以太网通信软件设计
可穿戴健康监测系统可作为监测病原体感染状态的筛选工具
RFID技术在农业领域有什么可以应用的地方
89BSD-030BA-A压力传感器测量液位深度
如何选择变压器的连接组别
安全挂锁的主要用途是什么,它有哪些归类
CAN通信软件设计
为什么在无线通信中使用AI?
3位异步递增计数器的真值表
于柯鑫:沃尔沃品牌的电气化策略和决心是非常坚决的
咕咚智能心率手环评测 它的软件生态配合硬件才是它真正的价值所在
解决51单片机复位触发的4种方法
细数三星S8的退步, 续航缩水严重, 多点不如S7edge
IGBT不再“Made in Germany”?中国企业挑战世界级品牌!
宸展光电为KDS智能后厨系统提供更好的触控一体机
华为Mate10什么时候上市?华为Mate10最新消息:硬件、拍照、续航、价格较华为Mate9有何升级?
智能屏幕类别的商品有望成为PC领域中的下一个新星
华硕ROGSTRIXRTX2080显卡评测 对得起它8999元的信仰售价
三菱PLC在纺织印染污水处理厂中如何实现数据采集?
一种六水氯化铁/乙酰胺为组分的低共熔溶剂体系
研究人员正借助AI的力量以改善对心脏异常的检查,并提高诊断的准确性