搭建UDS,一

UDS(Unified Diagnostic Services)诊断服务协议

UDS是一套建立在CAN , FLASH, EEPROM,定时器硬件驱动之上的软件框架。
那么如何从头开始搭建一套有UDS的产品呢?

首先你要把某块板子上的硬件驱动调试出来:
1.CAN
8bit
帧类型:标志帧 帧格式:数据帧
CANTX CANRX CAN接收中断 CAN接收中断里的过滤器;

2.FLASH
确定他总的大小,每块的大小,确定烧入进去的代码是从flash的哪里开始运行的,在进入main函数之前都干了什么初始化,这些初始化是否在flash里,如果在里面要去实验可不可以把他改变或者换个起始位置能不能正常运行。
查看flash驱动函数的限制最大可以写几块,擦了全部是否可以多次写等特性。

3,EEPROM
总的大小看看,块的话大多数基本都是一样的。(如果flash有dfalsh哪就不用在去外挂一个eeprom了)。

4,定时器中断
这个根据时钟进行配置,配置成5ms.
以上就是搭建完硬件方面的平台了。
下面来大概了解UDS

/*************************************************/
UDS基础框架常识:
首先UDS有3个状态模式
默认模式
编程模式
扩展模式

切换模式规则:
默认模式切换扩展模式可以直接切换
默认模式切换到编程模式不可切换
扩展模式切换到编程模式可以切换

每个服务都有特定的执行规则,比如说SID:10诊断会话控制服务,这个服务一般都支持3种模式下执行。但是比如说SID:28通信控制服务,这服务一般只支持在扩展和编程模式下运行。所以每一个服务都有他的模式限制规则。

寻址:

UDS有两大寻址:物理寻址,功能寻找。
两个都对应着各自的ID
物理寻址:0x000
功能寻找: 0xFFF

寻找执行规则:寻址是谁寻谁呢?
上位机 或 诊断仪 或 其他发送请求的设备寻址我们的主板或产品,比如上位机用CAN发了物理寻址0x000那么我主板上的CAN过滤器就会识别到他是我要的ID允许他进入CAN接收中断,然后在CAN接收中断里进入UDS框架先去判断你是物理寻址还是功能寻址从而进入下一阶段。

/****************************************************************/
UDS是固定的一个软件框架?大部分是固定的他是可裁剪的,大部分裁剪的内容是服务,服务就是各种功能函数,是一套有国际规范的功能服务,ISO15765 14229 这是国际规范可下载这些了解服务的基本信息。

接下来开始正式搭建软件框架

你可能感兴趣的:(嵌入系统,UDS,驱动,系统)