常见通信接口

    技术2022-07-15  71

    常见通信 异步通信: 异步通信中的接收方并不知道数据什么时候会到达,收发双方可以有各自自己的时钟。发送方发送的时间间隔可以不均,接收方是在数据的起始位和停止位的帮助下实现信息同步的。这种传输通常是很小的分组,比如一个字符为一组,为这个组配备起始位和结束位。所以这种传输方式的效率是比较低的,毕竟额外加入了很多的辅助位作为负载,常用在低速的传输中。 举个例子,我们的键盘按下一个按键,发出一个字符信号,异步传输机制就会为它加上前后的辅助同步信息,帮助接收方识别到我们按下了哪一个按键。因为我们敲击键盘的节奏不固定,所以异步是一种很适合的方式。 同步通信: 同步通信中双方使用频率一致的时钟,它的分组相比异步则大得多,称为一个数据帧,通过独特的bit串作为启停标识。发送方要以固定的节奏去发送数据,而接收方要时刻做好接收数据的准备,识别到前导码后马上要开始接收数据了。同步这种方式中因为分组很大,很长一段数据才会有额外的辅助位负载,所以效率更高,更加适合对速度要求高的传输,当然这种通信对时序的要求也更高。 单工、半双工、全双工 单工:只允许通信双方的一方向另一方传输。 半双工:允许通信双方相互传输,但在一个时刻,只允许数据在一个方向上传输。 全双工:允许在同一时刻同时接收和发送信息。

    单片机的通讯模块常用的有UART、SPI、I2C、CAN等等,当然还有无线模块这里不讨论。UART大多用于单片机与PC的通信,CAN总线常用于单片机与单片机通信,而SPI和I2C则用于单片机和外围设备、外围设备和其它外围设备的通信,根据自己的需要来设计通讯方式。

    UART :通用异步收发器,全双工传输和接收 主要有:VCC GND RX TX 收发两端读写接口应相反 可以用中断和DMA接收数据

    I2C通信 半双工同步通信,两线串行

    在通信之初,主从机必须根据自己的要求约定好通信规则:command的定义和位置、address的位数和位置。   以读写从机寄存器数据为例:   假设从机寄存器地址为8位、从机寄存器也位8位(被读取数据为8位);   约定读command为0x01,写command位0x02;   约定主机发起通信后,第一个slave address字节收到ack后,紧跟的一个字节为command,再下面一个字节为address。   1. 读寄存器数据步骤:   1.1 主机先发起一次通信,将读command(0x01)和需要读取的寄存器地址address写入从机;(主机发出写操作)   1.2 从机firmware的处理:   1.2.1 将command和address分别提取出来;   1.2.2 判断command的含义(本例中,是读指令还是写指令);   1.2.3 根据收到的的address,将对应寄存器的的数据放入从机I2C输出buffer;(这个步骤可以使用指针)   1.3 主机再次发起一次通信,读取从机的数据;(主机发出读操作)

    SPI通信 串行外设接口,全双工同步通信,四线: MISO(主设备数据输入)、MOSI(主设备数据输出)、SCLK(时钟)、CS(片选) (1)MISO– Master Input Slave Output,主设备数据输入,从设备数据输出; (2)MOSI– Master Output Slave Input,主设备数据输出,从设备数据输入; (3)SCLK – Serial Clock,时钟信号,由主设备产生; (4)CS – Chip Select,从设备使能信号,由主设备控制。

    缺点:没有指定的流控制,没有应答机制确认是否接收到数据。 DMA:直接存储器访问 DMA的出现就是为了解决批量数据的输入/输出问题。DMA是指外部设备不通过CPU而直接与系统内存交换数据的接口技术。这样数据的传送速度就取决于存储器和外设的工作速度。

    通常系统总线是由CPU管理的,在DMA方式时,就希望CPU把这些总线让出来,即CPU连到这些总线上的线处于第三态(高阻状态),而由DMA控制器接管,控制传送的字节数,判断DMA是否结束,以及发出DMA结束信号。因此DMA控制器必须有以下功能:

    1、能向CPU发出系统保持(HOLD)信号,提出总线接管请求;

    2、当CPU发出允许接管信号后,负责对总线的控制,进入DMA方式;

    3、能对存储器寻址及能修改地址指针,实现对内存的读写;

    4、能决定本次DMA传送的字节数,判断DMA传送是否借宿。

    5、发出DMA结束信号,使CPU恢复正常工作状态。

    对于实现DMA传输,它是由DMA控制器直接掌管总线(地址总线、数据总线和控制总线),因此,存在一个总线控制权转移问题 DMA传输开始前:    CPU------>DMA控制器 DMA传输结束后: DMA控制器------>CPU 一个完整的DMA传输过程必须经历DMA请求、DMA响应、DMA传输、DMA结束4个步骤。

    can通信:异步半双工通信 https://blog.csdn.net/tyhaotingdege/article/details/79787589

    Processed: 0.010, SQL: 9