S32K144从入门到入土(4)lpuart、lpiic、lpspi模块

1 协议

通信协议一般分为两个类型:同步和异步

其中通过CLK时钟线进行通信的叫做同步通信,通过波特率进行定时采样的叫异步通信。

串口和CAN属于异步通信,SPI和 IIC属于同步通信。

1.1串口协议

        串口协议通过两条线来实现,一条TX,一条RX,两条线分别用于收发,可同时进行传输。故属于全双工的通信。

        在默认状态下数据线上处于高电平,当数据传输时先发送一个起始信号,起始信号为一个低电平,后面连续接着8位数据位(可配置,可选678三种位数发送)后接一个奇偶校验位,再加上一位的停止位构成。为了保证数据的准确性,选择在电平的1/2处读取数据,可以减小误差。

1.2IIC协议

        IIC协议属于串行的同步传输协议,支持一主多从模式。故在进行通信时需要先对从机进行选择,通过定义地址的方法得到。IIC由两条线构成,分别为SDA和SCL,其中SDA用于传输数据,SCL用于传输同步时钟信号。故IIC是一个半双工的传输协议(可双向传输,不可同时传输)。

        在进行数据传输时,SCL为高电平的同时,SDA拉低电平表示起始信号。在CLK的上升沿时间,对SDA进行采样。故需要在传输过程中拉高时钟线,再延时一段时间。在SCL为高期间SDA由低转高表示结束信号。由时序可知,在SCL为高时,SDA传输的数据不可改变。

 在主机向从机发送数据时,主机会要求从机进行应答。时序如下。

        总线冲突时,按“低电平优先”的仲裁原则(地一定是地,高不一定是高),把总线判给在数据线上先发送低电平的主器件;

在特殊情况下,若需禁止所有发生在I2C总线上的通信,可采用封锁或关闭总线,具体操作为在总线上的任一器件将SCL锁定在低电平即可;

SDA仲裁和SCL时钟同步处理过程没有先后关系,而是同时进行的。

1.3SPI协议

SPI协议由四条线组成线组成,SCK,NSS,miso和mosi四条线。其中MISO和MOSI用于数据传输,NSS用于片选。SPI支持多主多从的传输方式。

SPI有四种工作模式

CPOL:SPI空闲的时钟信号电平。(1:高电平,0:低电平)

CPHA:SPI在时钟的第几个边沿采样。(1:第二个边沿开始,0:第一个边沿开始)

2 模块代码

四条线 SCK时钟线,MOSI主机输出端,MISO从机输出端,NSS片选线(低电平有效)

通信顺序为主-》从然后进行从-》主,步骤不可省略,时钟极性可以选择

原理:主要是在sck的控制下,两个双向移位寄存器进行数据交换。上升沿发送、下降沿接收、高位先发送。

 

2.1串口模块

S32K144具有3个串口资源。

使用前,使能对应的口

编写变量名,选择和开发板对应的device

选择传输方式,这里采用了中断传输,(也可以选用DMA传输)配置波特率

串口的发送接收有几个不同的函数,在函数定义区有概述,观者可以自行查看。

我们本次采用阻塞的方式进行接收和查询。阻塞接收存在较大的问题,CPU使用率会大幅度降低。故在选择几种方式时应结合业务逻辑选择。

在程序中,需要先初始化时钟和引脚,延时函数。再进行串口初始化,接下来就可以正常使用串口了。

    CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT,
                   g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);
    CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_AGREEMENT);
    PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr);
    s32_systick_init();

LPUART_DRV_Init(INST_LPUART1, &lpuart1_State, &lpuart1_InitConfig0);

请注意:如果采用中断的方式进行数据接收,需要注册和使能回调函数。

2.2IIC模块

    S32K144具有一个IIC资源,和串口一样,使用前编辑变量名,选择使用IIC0

对IIC进行进行配置,设置模式选择配置master模式,我们这里使用IIC只作为主机使用。

和串口一样,只需要初始化它,便可以正常使用。值得注意的是,IIC在通信时,必须等待ACK,故不接从设备,IIC无法正常通信。

笔者就不在这赘述,需要读者好生练习,自己动手,才能更快的提升自己。

如需详细叙述,可以留言,笔者可以给出详细配置过程、代码。

2.3SPI模块

S32k144有三个SPI资源。和之前的两个模块配置方法如出一辙,笔者就不再赘述。

如需详细叙述,可以留言,私信笔者可以给出详细配置过程、代码。

3 协议总结和思考

3.1总结

本篇讲述了常见的通信协议,概述了同步异步通信的区别。

SPI、IIC和UART是三种常见的串行通信协议。

SPI(Serial Peripheral Interface)是一种高速、全双工、同步的串行通信协议,用于连接微控制器和外设,比如闪存、传感器、LCD显示器等。SPI协议使用至少4根线(时钟线、数据输入线、数据输出线、从设备选择线),能够实现高速数据传输和多设备通信。

IIC(Inter-Integrated Circuit)也称为TWI(Two-Wire Interface),是一种全双工、同步的串行通信协议,用于连接微控制器和多种外部设备,比如温度传感器、加速度计、电子罗盘等。IIC协议只使用两根线(数据线、时钟线),可以实现多个设备之间的简单通信。

UART(Universal Asynchronous Receiver/Transmitter)是一种异步串行通信协议,用于将数据传输到计算机或其他设备。UART协议使用至少2根线(数据线、时钟线),支持双向数据传输。

下面是SPI、IIC和UART的简单对比:

|     | SPI  | IIC  | UART |
| --- | ---  | ---  | ---  |
| 线数 | 4根或更多 | 2根或更多 | 2根或更多 |
| 传输速度 | 高 | 较高 | 低 |
| 多设备通信 | 支持 | 支持 | 不支持 |
| 数据传输方式 | 全双工 | 全双工 | 半双工或全双工 |
| 数据帧结构 | 无 | 地址+数据 | 起始位+数据+校验位+停止位 |
| 软件复杂度 | 中等 | 中等 | 低 |

需要根据具体应用场景选择合适的串行通信协议。例如,SPI适合需要高速数据传输和多设备通信的应用;IIC适合连接多种低速外设;UART适合需要简单的串行通信的应用。

3.2思考

        笔者讲述了三个协议原理,以及浅显的仲裁机制。对于IIC的仲裁机制,希望读者深入了解一番。如若学习CAN,也会变得得心应手。对于串口协议,笔者希望读者深入思考一下,怎么才能确定数据传输的稳定、精准性。学习一下CAN消除误差的原理,设计一个更准确的串口协议。

一入S32K深似海,从此参考资料似路人。道友,保重!!!

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: S32K144开发板是一款基于NXP S32K1系列微控制器的开发板,适用于初学者和专业开发人员进行学习和实践。本手册旨在帮助初学者熟悉S32K144开发板的硬件、软件和基本操作,为开发者快速入门提供指导。 硬件部分,手册提供了开发板的外部引脚和各种接口的介绍,包括键盘矩阵、LCD显示、GPIO端口、ADC、PWM、CAN、SPI、I2C等等。对于初学者来说,手册提供了良好的硬件概念,可以使他们更好地了解这些接口的作用和用途。 软件方面,手册介绍了如何安装和使用S32 Design Studio和SDK,以及如何创建新项目和使用示例程序。手册提供了详细的步骤和示例代码,帮助开发者轻松入门。 此外,手册还介绍了一些常用的调试和测试工具,如调试器、虚拟示波器及其他工具,这些工具可以帮助开发者更好地理解设备的工作原理和进行调试。 总的来说,该入门手册提供了完整的S32K144开发板的介绍,从硬件到软件,从基础到深入。对于初学者来说,这是一个很好的起点,可以让他们快速熟悉并运用S32K144开发板进行开发。 ### 回答2: s32k144开发板入门手册是一份详细的指南,旨在为开发者提供有关如何使用这个板子的基础知识和信息。这个文档提供了大量的信息,从软件安装到硬件连接以及更高级的主题,如如何编写和调试代码。以下是关于这份手册的一些重要信息。 首先,s32k144开发板入门手册介绍了工具链和软件的安装方式。对于刚入门的开发者来说,这非常有用,因为它确保他们可以在他们的电脑上正确地配置开发环境。 其次,这个手册也教你如何将s32k144开发板连接到电脑上,以便下载和运行代码。这包括物理连接以及软件设置,如何使用调试工具等。 接下来,这个手册解释了如何使用开发环境(如Keil或IAR)编写代码。它也介绍了一些基本的编程概念,如寄存器选项卡、中断等等。此外,手册还包括调试代码的方法,例如单步调试和断点。 最后,s32k144开发板入门手册还涵盖了像CAN、PWM、ADC等高级主题。这些内容可能对一些开发者来说比较高级,但对于那些想了解更多的人来说,这些信息非常有用。 总之,s32k144开发板入门手册是一份非常详细的文档,非常适合想要深入了解如何使用这个板子的开发者。它不仅提供了基础知识,还提供了更高级的主题,让开发者更好地理解和掌握这款开发板的所有功能。 ### 回答3: s32k144开发板入门手册是一本非常重要的指南,它可以帮助初学者入门和了解s32k144开发板的基本知识。 首先,s32k144开发板入门手册介绍了开发板的基本硬件组成,包括主芯片、外设模块、存储器、通讯模块等。它还详细描述了开发板的各种连接口和引脚功能,以方便初学者进行各种实验和应用。此外,手册还列出了开发板的规格参数和性能指标,帮助读者更好地了解开发板的特点和优势。 其次,s32k144开发板入门手册介绍了开发板的软件环境和工具链。手册详细介绍了开发板所支持的应用程序语言和开发工具,包括C语言、C++语言和汇编语言等。为了帮助读者快速上手,手册还提供了一些简单的实验代码以供参考和学习。 最后,s32k144开发板入门手册也介绍了一些常见的问题和解决方案,以帮助读者在实验和开发中遇到问题时能够快速解决。 总之,s32k144开发板入门手册是一本非常有价值的指南,对于初学者和s32k144开发板的用户都有很大帮助。它提供了丰富的信息和实用的工具,让使用者能够更好地了解和应用s32k144开发板,为未来的学习和实践奠定了坚实的基础。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值