嵌入式系统及应用 第4 讲串口通信

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

串口通信
• USART寄存器映射
串口通信
• F407串口原理图
串口通信
• 注意实验中串口通信的硬件连接
– P6->RXD —— PA9 – P6->TXD —— PA10 – 思考:以上连接关系实现哪些接口的通信?
串口通信
• 串口通信软件代码的实现步骤
– 变量定义与初始化 – 设置系统工作时钟频率 – 延时初始化 – 串口初始化,设置串口参数 – LED初始化 – 发送数据 – 等待数据发送结束
• 如果LBDIE = 1,当LBD = 1时,表明中断产生
串口通信
• 状态寄存器SR(续)
– TXE:发送数据寄存器为空,表明数据已经传输 到移位寄存器中
– TC:Transmission complete发送完成 – RXNE:读数据寄存器非空,即接收数据已经准
备好,可以进行读取 – IDLE:当IDLE闲散状态被检测时,硬件置位 – ORE:Overrun error检测到溢出错误
通信协议
• 通信协议按照时序关系来分,可分为同步 通信和异步通信。
• 按照发送数据位宽来分,分为串行通信和 并行通信。
• 串行通信按照数据传输方向以及是否同时 收发通信分为:单工、半双工和全双工。
通信协议
• 同步通信中双方使用频率一致的时钟,它的 分组相比异步则大得多,称为一个数据帧, 通过独特的bit串作为启停标识。
串口通信
• 控制寄存器1
– 复位值0x0000 0000 – OVER8:0为16倍过采样、1为8倍过采样 – UE:USART使能 – M:字长控制
• 0: 1 Start bit, 8 Data bits, n Stop bit • 1: 1 Start bit, 9 Data bits, n Stop bit
• IrDA,Infrared Data Association红外数据组织
– IREN:IrDA模式使能 – EIE:Error interrupt enable错误中断使能
• DMAR = 1且FE = 1或ORE = 1或NF = 1时产生中断
串口通信
• 保护时间与预分频器寄存器GTPR
– 复位值0x0000 0000 – GT[7:0],保护时间,单位:波特率时钟
• 注意:COM指串口的物理实现,RS232是一 种串口接口标准,一般采用DB9针连接器作 为接口。
串口通信
串口通信
• 注意串口调试助手的 配置参数
– 波特率 – 数据位 – 奇偶校验 – 停止位 – COM端口设置
• 尤其在实验时要注意 收发双方的参数一致
串口通信
• USART(Universal Synchronous/Asynchronous Receiver/Transmitter)
串口通信
• 控制寄存器1(续)
– IDLEIE:IDLE = 1时串口中断产生 – TE:发送端使能 – RE:接收端使能 – RWU:0接收端处于激活模式,1静默模式 – SBK:Send break,置位将发送break帧数据
串口通信
• 控制寄存器2
– 复位值0x0000 0000 – LINEN:LIN模式使能 – STOP
能产生该中断 – DMAT:DMA使能用于数据传输 – DMAR:DMA使能用于数据接收 – SCEN:智能卡模式使能
串口通信
• 控制寄存器3(续)
– NACK:智能卡NACK使能 – HDSEL:Half-duplex selection半双工模式使能 – IRLP:IrDA低功耗模式,0正常模式,1低功耗
• 00:1bit;01:0.5bit;10:2bit;11:1.5bit
串口通信
• 控制寄存器2(续)
– CLKEN:CK时钟使能 – CPOL:在同步模式下选择CK时钟输出的极性 – CPHA:时钟相位,与CPOL一起工作
• 0:第一个数据捕获边缘为第一个时钟 • 1:第一个数据捕获边缘为第二个时钟
• 波特率寄存器BRR
– DIV_Mantissa[11:0] – DIV_Fraction[3:0] – USARTDIV = DIV_Mantissa + (DIV_Fraction / 8 ×
(2 – OVER8))
串口通信
• 标准USART波特率计算(fCK外设时钟)
• Smartcard、LIN和IrDA的波特率计算
• 特点:传输速度快、效率高,由于需要多 条数据线从而导致成本较高。
• 通常用在实时性要求高、需要快速通信的 场合,如计算机与显示器之间的VGA、DVI 等接口。
并行通信
• 并行通信示意图
串行通信
• 串行通信:相对于并行通信而言,通常认 为只有1位或2位数据(双向或差分需要用2 根数据线),8位数据需要分时通过数据总 线传输。
• 适用于智能卡模式 • 在保护时间结束后,数据传输结束标志置位 • UART4和UART5不使用该寄存器
串口通信
• 保护时间与预分频器寄存器GTPR(续)
– PSC[7:0],预分频器值 – IrDA低功耗模式
• 将系统时钟用PSC分频至更低的频率 • 0x0000 0000无效 • 0x0000 0002,二分频
– IrDA正常模式
• PSC必须设置为0x0000 0001
串口通信
• 保护时间与预分频器寄存器GTPR(续)
– 在智能卡模式下PSC[4:0]为预分频器值 – 0x00000,无效 – 0x00001,时钟二分频 – 0x00010,时钟四分频 – 0x00011,时钟六分频 – ...... …… – 对于UART4和UART的配置无效
– LBCL:最后一位的时钟脉冲
• 0:最后一个数据位的时钟脉冲没有输出到CK引脚 • 1:最后一个数据位的时钟脉冲输出到CK引脚
Leabharlann Baidu口通信
• 控制寄存器2(续)
– LBDIE:当USART_SR寄存器中的LBD = 1时,产 生LIN中断
– LBDL:0为10位中断检测;1为11位中断检测 – ADD[3:0]:USART节点地址,用于多处理器通信
• 串行通信的特点:低成本、控制复杂、传 输速度慢等。
• 利用LVDS、USB、SATA等可以实现很高的串 行传输速度。
串行通信
• 串行通信示意图
串行通信
• 相对于并行通信,串行通信的成本更低,因此 市场应用更加广泛,常见的串行通信方式有: UART、I2C、SPI、CAN、USB、SATA等。
• 物理层 • 数据链路层 • 网络层 • 传输层 • 会话层 • 表示层 • 应用层
• 注意:UART与USART的区别!!!
串口通信
• Idle帧:全帧为1 • Break帧:全帧为0,最后插入1 – 2个bit停止
串口通信
• USART模式配置表
串口通信
• 状态寄存器SR
– 偏移地址0x00 – 复位值:0x0000 00C0 – CTS:Clear to Send,CTS引脚状态发生变化标志 – LBD:LIN中断检测标志
串口通信
• 软件调试中需要注意的问题
– 一般关注错误提示:ERROR – 大多数情况下的警告Warning提示可以忽略 – 如果发现代码运行结果与期望输出不同,请用
断点+单步运行的方式进行调试,逐行代码核对 ARM处理器是否正常运行 – 如果发现软件运行结果异常,却找不到原因时, 请重点关注Warning提示的内容
串口通信
——《嵌入式系统及应用》课程
刘春静 安徽信息工程学院 电气与电子工程学院
通信协议
• 通信协议,即通信发送方按照事先约定的 规则来发送数据,接收方根据规则来接收 数据进行解码。
• 约定的规则包括传输速度、同步方式、数 据格式、检错纠错方式等。
• 通信各方都必须按照约定来发送接收数据, 从而实现通信,否则通信就会失败。
• 发送方要以固定的节奏去发送数据,而接收 方要时刻做好接收数据的准备,识别到前导 码后马上要开始接收数据了。同步这种方式 中因为分组很大,很长一段数据才会有额外 的辅助位负载,所以效率更高,更加适合对 速度要求高的传输,当然这种通信对时序的 要求也更高。
通信协议
• 异步通信中的接收方并不知道数据什么时 候会到达,收发双方可以有各自自己的时 钟。发送方发送的时间间隔可以不均匀, 接收方是在数据的起始位和停止位的帮助 下实现信息同步的。这种传输通常是很小 的分组,比如一个字符为一组,为这个组 配备起始位和结束位。所以这种传输方式 的效率是比较低的,毕竟额外加入了很多 的辅助位作为负载,常用在低速传输。
通信协议
• 举个例子,我们的键盘按下一个按键,发 出一个字符信号,异步传输机制就会为它 加上前后的辅助同步信息,帮助接收方识 别到我们按下了哪一个按键。因为我们敲 击键盘的节奏不固定,所以异步是一种很 适合的方式。
• 注意异步与同步通信的本质区别!!!
通信协议
• 并行通信:总线上具有多条数据线,各数 据位同时通过数据总线进行传输
• LVDS(Low-Voltage Differential Signaling)低电 压差分信号,是一种低功耗、低误码率、低串 扰和低辐射的差分信号技术,这种传输技术可 以达到155Mbps以上,LVDS技术的核心是采用 极低的电压摆幅高速差动传输数据,可以实现 点对点或一点对多点的连接,其传输介质可以 是铜质的PCB连线,也可以是平衡电缆。
的场景
– 注:在发送端使能时,CPOL、CPHA、LBCL不能 够被写入!!!
串口通信
• 控制寄存器3
– 复位值0x0000 0000 – ONEBIT
• 0:三采样bit • 1:单采样bit,此时的噪声检测标志位NF无效
串口通信
• 控制寄存器3(续)
– CTSIE:当SR寄存器CTS = 1,串口中断产生 – CTSE:CTS模式使能 – RTSE:RTS中断使能,只有当接收缓冲空闲时才
串口通信
• 状态寄存器SR(续)
– NF:Noise detected flag当接收数据为噪声时置 位
– FE:Framing error当检测到数据帧错误或break 帧时置位
– PE:Parity error当接收端检测到奇偶校验出错 时,该位置位
串口通信
• 数据寄存器DR
– 复位值0xXXXX XXXX – DR[8:0]包含接收或发送的数据
通信传输方式
• 单工、半双工、全双工
串口通信
• UART包括RS232、499、423、422、485等接 口和总线标准。COM是串行通信端口 (Cluster Communication Port),简称串口。 由于历史原因,IBM的PC外部接口配置为 RS232,因此成为实际上的PC界默认标准。
串口通信
• 控制寄存器1(续)
– WAKE:唤醒方式,0空闲线,1地址标志 – PCE:Parity control enable奇偶控制使能 – PS:Parity selection,0偶校验,1奇校验 – PEIE:PE中断使能,PE = 1串口中断产生 – TXEIE:TXE中断使能,TXE = 1串口中断产生 – TCIE:传输完成中断使能, TC = 1串口中断产生 – RXNEIE:ORE = 1或RXNE = 1串口中断产生
相关文档
最新文档