公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob

【AURIXTM读书月】瑞士军刀----ASCLIN ?

【AURIXTM读书月】瑞士军刀----ASCLIN ?

混森蓝兽
Level 2
Level 2
50 comments on blog 25 comments on blog 10 comments on blog

书籍:《英飞凌多核单片机应用技术:AURIXTM三天入门篇》

读书笔记概括:小推车很好控制的,双手握住车把,往哪想让车往哪走就往哪使劲。小汽车不行了,传感器件太多,需要有一个强大控制器来统一调度了。这时候问题就来了,调度信号怎么走,飞鸽传书还是火点狼烟。总之需要有统一,控制器和各个外设器件约定成规的方式来通信。今天就简单写一下《第6章 通信与与外设管理》的阅读笔记。第六章主要介绍了AURIXTM单片机里的三个通信接口模块:MultiCAN+,QSPI,ASCLIN


      刚看到ASCLIN这个模块的时候,感觉有点意思哈。根据书里面的介绍,该模块将串口,SPI通信,LIN通信的功能集成到了一起,形成了一个可实现多种异步通信协议的综合通信模块,一个模块多种功能。

      不过这部分书中感觉介绍的不多,只是大致介绍了ASCLIN中的串口,spi,lin的功能特点,然后就没什么了。如此,我只能去研究一下示例代码了,看看他是如何配置以实现三种不同通信接口的。示例代码给出的是串口功能了,代码不复杂,简单,清晰明了,先初始化ascConfig这个结构体,设置好各种基础参数,例如:

      波特率,

      串口中断优先级,

      接收发送buffer的大小,

      运行在哪个内核核等等.

      当然,也还包括串口所用到引脚的初始化。

      接着利用IfxAsclin_Asc_initModuleConfig()函数对Asclin模块进行初始化,就是将ascConfig的参数写入模块的对应寄存器中,这样就OK了。

      然后数据的发送和接收,就分别由以下的两个函数来完成

      IfxAsclin_Asc_blockingWrite()

      IfxAsclin_Asc_read()

      看完我就有点懵了,似乎都是在设置串口相关的东西,似乎压根没有提到模式设置,没有哪里提到了将ASCLIN切换到串口模式。没办法,只能去查看底层的驱动文件了,

然后我看到了IfxAsclin_setFrameMode(asclinSFR, IfxAsclin_FrameMode_initialise)这个函数,点进去,看至看到:

      asclin->FRAMECON.B.MODE = mode;

      到这里就基本知道是如何设定ASCLIN的模式的了:由FRAMECON这个寄存器决定。

FRAMECON是一个32bit的寄存器,其中它的[17:16] bit确定了使用何种协议进行通信。参考:

typedef struct _Ifx_ASCLIN_FRAMECON_Bits

{

unsigned int reserved_0:6;

unsigned int IDLE:3;

unsigned int STOP:3;

unsigned int LEAD:3;

unsigned int reserved_15:1;

unsigned int MODE:2;

unsigned int reserved_18:10;

unsigned int MSB:1;

unsigned int CEN:1;

unsigned int PEN:1;

unsigned int ODD:1;

} Ifx_ASCLIN_FRAMECON_Bits;


mode的取值有四个,初始模式,串口模式,spi模式,lin模式。参考:

typedef enum

{

IfxAsclin_FrameMode_initialise = 0,

IfxAsclin_FrameMode_asc        = 1,

IfxAsclin_FrameMode_spi        = 2,

IfxAsclin_FrameMode_lin        = 3

} IfxAsclin_FrameMode;

      好了,疑惑已解。至于切换其他通信接口的详细操作,就再说吧。

      ASCLIN模块,还是有点意思的,一个模块多种用途,瑞士军刀。到哪都可以顶一下,LIN总线可以用于门,窗,座位和车内空调的调节;ASC可以用于调试工具的串口通信等;spi可以用到EEPROM等,ASCLIN模块在汽车的控制系统中,作用相当大。

      看到ASCLIN,我想到了飞思卡尔的FlexIO模块,也是如此,可以模拟多种外设接口(如UART,SPI,I2C,I2S等),不过跟ASCLIN模块还是有区别,各有特色,魅力无穷。

====================================================

      《第6章 通信与与外设管理》的阅读笔记,到这里就结束,研究不多,但却是收获不少,汽车控制系统神经的通信接口系统,确实丰富,而AURIXTM单片机支持这些协议接口,更是能让研发人员省事不少。AURIXTM,专为汽车而生!


0 点赞
6557 次查看
11 评论