嵌入式原理图入门-UART

串口:

UART(Universal Asynchronous Receiver/Transmitter),即通用异步收发传输器,简称串口。

抓取日志、还有很多的外设也是用串口进行通讯,例如GPS模块、蓝牙模块、电表、锁板等


串口硬件及原理图

串口内部结构

以s3c2440为例,其串口内部结构如下:

串口内部结构

从图可知,串口内部由以下单元组成:

baud-rate generator(波特率生成器), transmitter(发送器), receiver(接收器), control unit(串口控制单元)。

发送器和接收器都包含有FIFO(先入先出缓冲区)和Shifter(移位器)

工作流程:

程序预先通过串口控制单元设置波特率,由波特率发生器产生相应时钟,当cpu给串口发送数据时,程序将数据写入内存,通过interrupt 或者 DMA方式写进FIFO,Transmit Shifter移位器每次从FIFO中取出1bit数据发送出去(TX);反之,串口给cpu发送数据时,Receive Shifter读取RX信号,每次写1bit数据给FIFO,随后通过interrupt 或者 DMA方式写进内存由cpu处理数据


串口根据硬件接入方式

常用的有TTL、RS232、RS485三种

TTL:

TTL示意图

TTL:全双工(逻辑1: 2.4V--5V   逻辑0: 0V--0.5V),传输距离短,用于MCU之间通信,传输距离通常1m左右。

RS232:

232示意图

RS-232:全双工(逻辑1:-15V--5V  逻辑0:+3V--+15V),传输距离可达15m左右,常用于MCU与PC间通讯,

由于MCU使用的是TTL电平,PC使用232电平,为此之间需要接入电平转换芯片。

RS485:

485示意图

RS485:半双工、(逻辑1:+2V--+6V  逻辑0: -6V---2V)这里的电平指AB 两线间的电压差,采用AB双绞线差分信号传输,抗干扰强,传输距离远,可达1KM左右。

由于485采用差分传输,因此485是半双工传输,不能同时收发,因此,需要使能DE/RE 达到切换发送/接收,通常有如下两种方式:

GPIO使能:

485原理图接线(一)

如上图所示,GPIO_RX485_CTL输出电平使能DE/RE

硬件使能:

485原理图接线(二)

MAX485真值表

如上图所示,UART_EE_C_TX作为发送端TX,又作为控制脚使能DE/RE,查看MAX485真值表可知,

UART_EE_C_TX为1,DE=RE=0,DI=1,485此时输出为高阻态,接收端AB电平由外部电路即R79对VDDAO分压决定,此时为高电平;

UART_EE_C_TX为0,DE=RE=1,DI=0,485此时AB输出 -6V---2V,接收端AB此时为低电平。


串口通讯协议

串口参数 

串口参数

串口参数由波特率、数据位、校验位、停止位、流控组成

数据格式

串口通信数据格式

起始位:上位机发出低电平0并维持一段时间,表示传输开始,下位机接收到0准备开始通讯;

波特率:指每秒最大可发送多少位数据,确定了串口通信周期;

数据位:指一帧数据中有效数据有多少位;校验位:用于对数据的完整性校验,可设置奇校验、偶校验和无校验,比如发送0001 0000这个数据,若采用偶校验,则这个校验位写1,保证有偶数个“1”,反之,采用奇校验则这个校验位写0,保证有奇数个“1”;

停止位:可设置1/1.5/2位,当一帧数据发完后,发出高电平并维持一段时间,表示1帧数据传输结束;

流控:当发送和接收端处理串口数据速度有较大差别时,会造成数据没有被及时读取而丢失,此时可通过软件或硬件的方式来控制数据发送的速度,即为流控。

      硬件流控:需要在TX、RX外再额外接入RTS/CTS两条线,当接收端串口控制器FIFO数据快满时,接收端串口控制通过使能RTS告知发送端数据还没处理完,请稍等,当接收端FIFO数据被处理及时时,接收端串口控制器发送CTS告知发送端数据已被处理,你可以接着发送数据了!

     软件流控:不需要额外接线,接收端程序通过TX发送数据告知发送端先别发送或接着继续发送,这种方式虽然不需要额外接线,但是这种流控方式本身也占用了串口数据。

串口时序

串口时序

上位机发送端空闲时,其TX维持高电平

上位要发送数据时,将其TX由高电平拉低,并维持1bit时间,下位机RX被中断收到起始信号,准备接收数据,这一位即起始位;

上位机根据设置的数据位个数逐个发送相应个数的数据,下位机在每1/2位的时间采样一次下位机RX数据,即端发送的即数据位的数据;

上位机发送完数据位数据后,上位机串口控制器根据程序设置的校验方式补一位1或补一位0(如果设置了无校验,这一步跳过)并发送给下位机RX;

上位机发送校验位数据后,意味着此帧数据发送完毕,发送高电平并维持设置好的相应停止位数的时间

停止位后上位机被保持高电平,处于空闲状态,直到下一次传输时起始位被拉低。

上图,为1位起始位,8位数据位,偶校验,1位停止位,发送0001 0000数据时序图,有助理解以上内容

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 嵌入式ARM协议中的LIN总线是一种低成本、低速率的串行通信协议,主要用于汽车电子系统中的设备通信。LIN总线主要用于连接车辆的各个电子控制单元(ECU),如仪表盘、门控制模块、座椅调节模块等,以实现数据的传输和控制。 LIN总线协议基于主从结构,其中一个ECU充当主节点,负责发送指令和协调通信,而其他ECU则作为从节点,负责接收指令并执行相应的操作。主节点通过发送特定的帧让从节点执行特定的任务,从而实现控制和通信。 LIN总线的通信速率相对较低,通常在20kbps到20Mbps之间。这是为了满足低成本和低功耗的需求而设计的。此外,LIN总线还采用了不同的物理层电压标准,如12V和5V。这样可以适应不同的应用场景和硬件要求。 在嵌入式ARM系统中,LIN总线可以通过软件和硬件实现。通过使用ARM处理器的UART通信接口,可以将指令转化为LIN总线的帧格式,实现数据的发送和接收。同时,还可以使用专用的LIN总线驱动芯片来简化通信的实现。这些芯片通常具有LIN总线协议的硬件支持,可以提供更高的性能和稳定性。 总的来说,嵌入式ARM协议中的LIN总线是一种用于汽车电子系统的通信协议,通过低成本、低速率的串行通信实现ECU之间的数据传输和控制。它提供了灵活和可靠的通信方式,使得车辆系统的各个模块能够协同工作,实现更高的性能和功能。 ### 回答2: 嵌入式ARM协议中的LIN(Local Interconnect Network)总线是一种低成本、低速率的串行通信协议,常用于汽车和工业领域中。 LIN总线主要用于连接车辆不同的电子控制单元(ECU),包括车身电子系统、信息娱乐系统等。它的设计目标是为了提供可靠的数据传输,并保持较低的硬件和软件成本。 在LIN总线中,通讯由一个主节点(Master)和若干从节点(Slave)组成。主节点负责控制总线的访问和数据传输的时序,从节点则是被动响应主节点的指令。主节点通过发送帧(Frame)来控制从节点的操作,并接收从节点上报的数据。 LIN总线的通信速率相对较低,通常在20kbps至20Mbps之间,这是为了满足成本和可靠性的要求。它使用单线通信,通过追加校验位和帧头来确保数据的完整性和正确性。 作为一种低成本的通信协议,LIN总线在汽车和工业控制应用中发挥着重要作用。它常用于门锁系统、车窗控制、座椅调节、仪表盘等模块的通信。LIN总线的主要优点包括低成本、低功耗、简单的网络拓扑和更低的研发成本。 总而言之,嵌入式ARM协议中的LIN总线是一种低成本、低速率的串行通信协议,用于连接车辆不同的电子控制单元。它通过主节点和从节点的通信方式来实现数据传输和控制,具备低成本、低功耗等优点,广泛应用于汽车和工业控制领域。 ### 回答3: 嵌入式ARM协议——LIN总线,全称是局域网互连网络(Local Interconnect Network),是一种用于汽车电子控制系统的串行通信总线协议。 LIN总线是针对在车内各种电子设备之间进行通信而设计的低成本、低速率数据传输网络。它可以连接车内电子控制单元(ECU)之间的传感器、执行器和其他外设,例如仪表板、门锁、窗户控制器和座椅调节器等。 LIN总线采用了单一主节点和多个从节点的拓扑结构。主节点负责发送消息,而从节点是被动接收消息并执行相应的操作。主从节点之间的通信通过单线半双工方式进行,使得LIN总线在成本和可靠性方面都得到了优化。 LIN总线的通信速率相对较低,一般在20kbps至20Mbps之间。由于车内电子设备通常只要求低速率的数据传输,因此LIN总线可以满足大部分应用的需求。 LIN总线的协议栈包含物理层、数据链路层和应用层。物理层负责定义信号和电气特性,例如电压和线缆类型。数据链路层负责提供错误检测和纠正机制,以确保数据的可靠传输。应用层定义了消息的格式和内容,包括标识符、数据字节和校验位等。 相比于其他汽车网络协议,如CAN总线,LIN总线具有更低的成本和更简单的实现。它适用于一些较简单的车内电子设备,不需要高速数据传输的场景。 总而言之,嵌入式ARM协议——LIN总线是一种适用于车内电子控制系统的低成本、低速率的串行通信协议,通过单一主节点和多个从节点的拓扑结构实现通信。它的简单实现和性价比使得它在一些简单车内电子设备中得到广泛应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值