freescale semiconductor 第4章异步串行通信与直接存储器访问DMA V1.0 2009.2
第4章 异步串行通信与直接存储器访问DMA V1.0 2009.2
本章目录 4.1异步串行通信的基础知识 4.2MCF52233的UART模块的物理结构 4.3MCF52233的UART模块的编程 达 4.4嵌入式系统常用的标准C语言基本语法概要 4.5 ColdFire?第一个带有中断功能的实例 4.6MCF52233的四通道DMA控制 器 .7MCF52233的DMA编程 票营基于构件的带DMA的UART编程实 g进一步讨论
本章目录 4.1 异步串行通信的基础知识 4.2 MCF52233的UART模块的物理结构 4.3 MCF52233的UART模块的编程 结构 4.4 嵌入式系统常用的标准C语言基本语法概要 4.5 ColdFire第一个带有中断功能的实例 本书学习与实践资料索引 4.6 MCF52233的四通道DMA控制 器 4.7 MCF52233的DMA编程 要点 4.9 进一步讨论 4.8 基于构件的带DMA的UART编程实 例 2
4.1异步串行通信的基础知识 4.1.1基本概念 “位”(bt)是单个二进制数字的简称 是可以拥有两种状态的最小二进制值,分别用 “0”和“1”表示。在计算机中,通常一个信 息单位用8位二进制表示,称为一个“字节” (byte)。串行通信的特点是:数据以字节为 单位,按位的顺序(例如最高位优先)从一多 传输线上发送出去
4.1 异步串行通信的基础知识 4.1.1 基本概念 “位”(bit)是单个二进制数字的简称, 是可以拥有两种状态的最小二进制值,分别用 “0”和“1”表示。在计算机中,通常一个信 息单位用8位二进制表示,称为一个“字节” (byte)。串行通信的特点是:数据以字节为 单位,按位的顺序(例如最高位优先)从一条 传输线上发送出去。 3
4.1异步串行通信的基础知识 1.异步串行通信的格式 异步串行通信采用的是NRZ(标准不归零传号/空号数据格式)数据格式, 这种格式只有“1”、“0”两种逻辑值。 开始位 第0 第6位 第7位 停止位 串行数据通行格式(无校验) 这种格式的空闲状态为“1”,发送器通过发送一个“0”表示一个字 节传输的开始,随后是数据位(在MCU中一般是8位或9位,可以包含校验 位)。最后,发送器发送1到2位的停止位,表示一个字节传送结束。若继 续发送下一字节,则重新发送开始位,开始一个新的字节传送。若不发送 新的字节,则维持“1”的状态,使发送数据线处于空闲。从开始位到停止 位结束的时间间隔称为一帧(frame)。所以,也称这种格式为帧格式
1.异步串行通信的格式 异步串行通信采用的是NRZ(标准不归零传号/空号数据格式)数据格式, 这种格式只有“1”、“0”两种逻辑值。 开始位 第0位 第1位 第2位 第3位 第4位 第5位 第6位 第7位 停止位 串行数据通行格式(无校验) 这种格式的空闲状态为“1”,发送器通过发送一个“0”表示一个字 节传输的开始,随后是数据位(在MCU中一般是8位或9位,可以包含校验 位)。最后,发送器发送1到2位的停止位,表示一个字节传送结束。若继 续发送下一字节,则重新发送开始位,开始一个新的字节传送。若不发送 新的字节,则维持“1”的状态,使发送数据线处于空闲。从开始位到停止 位结束的时间间隔称为一帧(frame)。所以,也称这种格式为帧格式。 4.1 异步串行通信的基础知识 4
4.1异步串行通信的基础知识 2。串行通信的波特率 位长(Bit Length),也称为位的持续时间(Bit Duration)。其倒数就是单位时间内传送的位数。人们把每秒内传 送的位数叫做波特率(Baud Rate)。波特率的单位是:位/秒, 记为bps。 3.奇偶校验 4.串行通信的传输方式 (1)单工(Simplex):数据传送是单向的,一端为发送端,另 一端为接收端。 (2)全双工(Ful-duplex):数据传送是双向的,且可以同时接 收与发送数据。 (3)半双工(Half-duplex):数据传送也是双向的。任何时刻, 只能由一方发送数据,另一方接收数据,不能同时收发
2.串行通信的波特率 位长(Bit Length),也称为位的持续时间(Bit Duration)。其倒数就是单位时间内传送的位数。人们把每秒内传 送的位数叫做波特率(Baud Rate)。波特率的单位是:位/秒, 记为bps。 3.奇偶校验 4.串行通信的传输方式 (1)单工(Simplex):数据传送是单向的,一端为发送端,另 一端为接收端。 (2)全双工(Full-duplex):数据传送是双向的,且可以同时接 收与发送数据。 (3)半双工(Half-duplex):数据传送也是双向的。任何时刻, 只能由一方发送数据,另一方接收数据,不能同时收发。 4.1 异步串行通信的基础知识 5
4.1异步串行通信的基础知识 4.1.2RS-232C总线标准 MCU引脚输入/输出一般使用TTL(Transistor Transistor Logic)电平 TTL电平的"1”和"0”的特征电压分别为2.4V和0.4V,即大于2.4V则识别 为“1”,小于0.4V则识别为“0”。它适用于板内数据传输。为使信号传输 得更远,美国电子工业协会IA(Electronic Industry Association)制订 了串行物理接口标准RS-232C。RS-232C采用负逻辑,-15V~-3V为逻辑 “1”,+3V~+15V为逻辑"0”。RS-232C最大的传输距离是30m,通信 速率一般低于20KbPs。 在RS-232通信中,常常使用精简的RS-232通 ⑥⑦⑧⑨ ①@目④⑤ 信,通信时仅使用3根线:RXD(接收线)、 TXD(发送线)和GND(地线)。 9芯串行接口引脚含义表 引脚号 功能 引脚 功能 接收线信号检测(载波检测DCD) 6 数据通信设备准备就绪(DSR) 2 接收数据线(RXD) 请求发送(RTS) 3 发送数据线(TXD) 4 数据终端准备就绪(DTR) 89 允许发送(CTS) 振铃指示 5 信号地(SG)
4.1.2 RS-232C总线标准 MCU引脚输入/输出一般使用TTL(Transistor Transistor Logic)电平, TTL电平的“1”和“0”的特征电压分别为2.4V和0.4V,即大于2.4V则识别 为“1”,小于0.4V则识别为“0”。它适用于板内数据传输。为使信号传输 得更远,美国电子工业协会EIA(Electronic Industry Association)制订 了串行物理接口标准RS-232C。RS-232C采用负逻辑,-15V~-3V为逻辑 “1”,+3V~+15V为逻辑“0”。RS-232C最大的传输距离是30m,通信 速率一般低于20Kbps。 4.1 异步串行通信的基础知识 1 2 4 嵌 3 5 6 7 8 9 9芯串行接口引脚含义表 引脚号 功 能 引脚 号 功 能 1 2 3 4 5 接收线信号检测(载波检测DCD) 接收数据线(RXD) 发送数据线(TXD) 数据终端准备就绪(DTR) 信号地(SG) 6 7 8 9 数据通信设备准备就绪(DSR) 请求发送(RTS) 允许发送(CTS) 振铃指示 在RS-232通信中,常常使用精简的RS-232通 信,通信时仅使用3根线:RXD(接收线)、 TXD(发送线)和GND(地线)。 6
4.1异步串行通信的基础知识 4.1.3电平转换电路原理 所有型号MCU的串行通信接口,都具有发送引脚TxD、接收引脚RxD,它们是TTL 电平引脚。要利用这两个引脚与外界实现异步串行通信,还必须将TTL电平转为RS- 232电平,利用MAX232来完c1+V 160 Vcc Vs+2 150 GND C1-13 141T10UT C2+4 13R1IN MAX232引脚 C2-05 12 R1OUT Vs_ 6 110T1IN T2OUT 7 10T2IN R2IN 8 MAX232芯片输入输出引脚分类与基本接法 组别 TT电平 方向 典型接口 232电平引 脚 脚 方向 典型接口 接MCU的 设 辖金 TXD U的 强 幕金 接到3惑日鹏8 接MCU的 母9 鶉仝 TXD 接MCU的 藕仝 接到3莱接日鹏影8 RXD 7
4.1.3 电平转换电路原理 所有型号MCU的串行通信接口,都具有发送引脚TxD、接收引脚RxD,它们是TTL 电平引脚。要利用这两个引脚与外界实现异步串行通信,还必须将TTL电平转为RS- 232电平,利用MAX232来完成。 4.1 异步串行通信的基础知识 MAX232芯片输入输出引脚分类与基本接法 组别 TTL电平引 脚 方向 典型接口 232电平引 脚 方向 典型接口 1 11 12 输入输出 接MCU的 TXD 接MCU的 RXD 13 14 输入输出 接到9芯接口的2脚RXD 接到9芯接口的3脚TXD 2 10 9 输入输出 接MCU的 TXD 接MCU的 RXD 8 7 输入输出 接到9芯接口的2脚RXD 接到9芯接口的3脚TXD MAX232引脚 7
4.1异步串行通信的基础知识 232电平 TTL电平 T1IN 4.1.3电平转换电路原理 R1IN T10UT R10UT +5V GND 161514131211109 MAX232CPE 1 2345678 +5V TTL电平 lμF×5 转为232电平 基本工作过程是: 发送过程:MCU的TXD(TTL电平)经过MAX232的11脚(T1IN) 送到MAX232内部,在内部TTL电平被“提升”为232电平,通过 14脚(T10UT)发送出去。 接收过程:外部232电平经过MAX232的13脚(R1IN)进入到 MAX232的内部,在内部232电平被“降低”为TTL电平,经过 12脚(R1OUT)送到MCU的RXD,进入MCU内部
8 4.1 异步串行通信的基础知识 +5V 232 电平 R1IN T1OUT MAX232CPE 16 15 14 13 12 11 10 9 1 2 3 4 5 6 7 8 +5V GND 1µF×5 + TTL 电平 转为 232 电平 + + V 1 + + TTL 电平 T1IN R1OUT 基本工作过程是: 发送过程:MCU的TXD(TTL电平)经过MAX232的11脚(T1IN) 送到MAX232内部,在内部TTL电平被“提升”为232电平,通过 14脚(T1OUT)发送出去。 接收过程:外部232电平经过MAX232的13脚(R1IN)进入到 MAX232的内部,在内部232电平被“降低”为TTL电平,经过 12脚(R1OUT)送到MCU的RXD,进入MCU内部。 4.1.3 电平转换电路原理
4.2MCF52233的UART模块的物理结构 MCF5223x最多可包括3个相同且独立的UART模块,每个模块都 含有相互独立的发送器和接收器,其主要组成结构有UART寄存器组、 内部通道控制逻辑、中断控制逻辑、DMA请求逻辑、串行通信通道 和可编程时钟发生器等,其中,串行通信通道包括发送器和接收器两 个部分。 内部总线 UART UART寄存器组 UCTSn 串行通信 →URTSn 内部通道控制逻辑 通道 URXDn 外部信号 →UTXDn 中断请求← 中断控制逻辑 可编程的时钟 内部总线时钟FSys 发送DMA请求← DMM请求逻辑 发生器 或外部时钟DTINn 接收DMA请求← UART模块结构框图 9
4.2 MCF52233的UART模块的物理结构 可编程的时钟 发生器 UCTSn URXDn URTSn UTXDn 外 部 信 号 内部总线时钟 Fsys 或外部时钟 DTINn UART 中断请求 发送 DMA 请求 接收 DMA 请求 串行通信 通道 DMA 请求逻辑 中断控制逻辑 内部通道控制逻辑 UART 寄存器组 内部总线 UART模块结构框图 MCF5223x最多可包括3个相同且独立的UART模块,每个模块都 含有相互独立的发送器和接收器,其主要组成结构有UART寄存器组、 内部通道控制逻辑、中断控制逻辑、DMA请求逻辑、串行通信通道 和可编程时钟发生器等,其中,串行通信通道包括发送器和接收器两 个部分。 9
4.2MCF52233的UART模块的物理结构 1.外部引脚 UART的外部引脚有: (1)发送数据引脚:UTXDn (2)接收数据引脚:URXDn (3)请求发送引脚:URTSn (4)允许发送引脚:UCTSn 2.波特率发生器的内结构 3.发送器的内部结构 4.接收器的内部结构 5.DMA请求产生器 10
1.外部引脚 UART的外部引脚有: (1)发送数据引脚:UTXDn (2)接收数据引脚:URXDn (3)请求发送引脚:URTSn (4)允许发送引脚:UCTSn 2.波特率发生器的内部结构 3.发送器的内部结构 4.接收器的内部结构 5.DMA请求产生器 4.2 MCF52233的UART模块的物理结构 10