IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 针对嵌入式设备外接设备的驱动开发心得 -> 正文阅读

[嵌入式]针对嵌入式设备外接设备的驱动开发心得

工作半年,参与的项目里都存在需要外接的设备或是板上的芯片,这些东西都有一个共性,就是需要通过各种通信方式对设备进行控制或是从设备上获取数据,有官方现成驱动的使用官方现成驱动就好,一般问题不大,但是如果有官方驱动效果差或者是官方没有提供驱动的情况就需要自己动手丰衣足食了。

该博客仅针对外设官方驱动不满足项目需求或者是官方只给了电文及变量列表,也就是DataShell的情况给出我的一点点建议;

1、磨刀不误砍柴工

这些外设通常都是通过一些通信接口来与MCU通信,我主要见过的通信方式包括串口(TTL、RS232以及RS485)、CAN、SPI、IIC,其中串口和CAN多用在拉线接的外设上,SPI和IIC都是板上通过PCB的电路与MCU连接的芯片,正所谓磨刀不误砍柴工,意思是需要优先把这些东西的通讯方式建立成一个体系,保证通讯不容易出现意外情况,出现意外情况需要有对应的修复手段。以串口设备为例,当前串口设备较为常见的两种,第一种是基于ModbusRTU从站作为通信接口的设备,第二种是基于AT指令集设备,第二种设备多用在通信模块上;
针对这种设备在开发的过程中,首先需要完善串口的收发功能。
一般方法为:
发送:在程序中循环调用串口发送函数,串口调试助手监控,不丢数据为佳;
接收:使串口调试助手循环发送不同数据,MCU串口接收中断处理正常、不会卡死为佳;
串口卡顿修复:串口在遇到意外情况下卡死(原则上不允许),需要有办法将串口复位

2、构建通讯协议框架

这个比较宽泛,需要对照被通信对象厂家的数据手册,针对性的写通讯协议框架。
以ModbusRTU协议为例,电文结构为站号、功能码、数据起始地址、数据长度、CRC校验,就要定义对应长度的数组,将被读对象的站号、功能码、数据地址、长度以及CRC计算好填入数组,并通过串口进行发送,待数据返回后进行解析,获取需要的数据即可。

3、压力测试

一般写好的通讯代码,除非是经验丰富的老师傅,不然写完之后一段时间,通信或多或少会出现故障问题,所以针对战场新兵就需要进行压力测试,完成一次通讯做一次通讯成功加计数,通讯失败一次就对通讯失败进行一次加计数,运行一天两天的样子,看看通信成功和失败计数值是否在合理范围内,不在就需要分析代码是否存在问题,在合理范围内的话就可以暂时告一段落,等待甲方提奇奇怪怪的需求了。

4、错误代码记录

除此之外,外部设备也有自己的运行逻辑,同样也有自己的错误情况,除了我们自己的MCU和设备的通讯故障之外的问题,这些问题厂家一般会给出错误代码以错误代码对应的解决方案,一般按照官方解决方案进行操作就没问题,但是遇到也是在开发阶段的官方,且错误代码不全,处理方案也不全的情况下直接用复位初始化大法,因为设备故障之后我们是不能相信它的,预期带着一只坏掉并且修不好的手,不如砍了重新长。

一般做到以上几点,外部设备还搞不定的话,我个人就认为可以换一家的设备了;
一般在完成了整个设备的设计后,就需要再次进行压力测试,也就是在一个安全的环境内,模拟出设备以后的真实情况,进行长时间通电测试,看设备会不会出现故障,且出现故障之后会不会自行修复,当上述测试通过之后就可以转载盒子里,拿到市场上去售卖了。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:35:13  更:2021-08-11 12:36:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:30:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码