210 likes | 388 Views
项目 10 :串行口通信- PDA 中的串口( 1 ). 本节课程主要知识点 串口通信的基本原理 PXA270 的串行口. 重点和难点. 重点 串口通信的基本原理 难点 PXA270 的串行口. 串口通信的基本原理. 串口通信. 串行通信是微计算机之间一种常见的近距离通信手段,因使用方便,编程简单而广泛使用。但现在很多笔记本电脑和 PC 机都不再提供串行通信接口。 在基于 Windows CE 的设备中仍然保留着串口。这是因为目前流行的 Windows CE 设备很多都具备导航、无线通讯等功能,而 GPS 、 GSM/GPRS 及蓝牙模块都是外置串口的终端设备。.
E N D
项目10:串行口通信-PDA中的串口(1) 本节课程主要知识点 • 串口通信的基本原理 • PXA270的串行口
重点和难点 重点 • 串口通信的基本原理 难点 • PXA270的串行口
串口通信 • 串行通信是微计算机之间一种常见的近距离通信手段,因使用方便,编程简单而广泛使用。但现在很多笔记本电脑和PC机都不再提供串行通信接口。 • 在基于Windows CE的设备中仍然保留着串口。这是因为目前流行的Windows CE设备很多都具备导航、无线通讯等功能,而GPS、 GSM/GPRS及蓝牙模块都是外置串口的终端设备。
Windows CE的串口通信 • 串行通信是Windows CE5.0支持的最简单的通信方式,Windows CE支持串行通信的标准函数。这些函数可以用于打开、关闭和操作串行口,传送和接受数据等。
串口的接口 • RS232标准采用的接口是9芯或25芯的D型插头,常用的一般是9针插头(DB-9)。 • 要完成基本的通信功能,实际上只需要RXD、TXD和GND即可, • 通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422或RS485较远))。
串口的电气特性 • RS232标准所定义的高、低电平信号与PXA270系统的LVTTL电路定义的高、低电平信号完全不同。 • LVTTL的标准逻辑1对应2V~3.3V电平,标准逻辑0对应0V~0.4V电平。而RS232标准采用负逻辑方式,标准逻辑1对应-5V~-15V电平,标准逻辑0对应+5V~+15V。 • 两者间要进行通信,必须经过电平的转换,转换芯片采用MAX232。
串行通信数据格式 • 起始位 一般用0作起始位。 • 数据位 5-8位的数据位。 • 奇偶校验位 1位的奇偶校验位,也可以不加。 • 停止位 一般用1作停止位。
起始位 • 开始前,线路处于空闲状态,送出连续1。 • 传送开始时首先发一个0作为起始位。 • 然后出现在通信线上的是字符的二进制编码数据。
数据位 • 每个字符的数据位长可以约定为5位、6位、7位或8位,一般采用ASCII编码。 • 数据位的长度通信双方要一致,否则数据会出错。 • 标准的数据位长度为8位。
奇偶校验位 • 用奇偶校验位将所传送的字符中为1的个数凑成奇数个或偶数个。 • 如果是奇校验,则每帧数据中数据位加上校验位中1的个数为奇数个。 • 如果是偶校验,则每帧数据中数据位加上校验位中1的个数为偶数个。 • 也可以约定不要奇偶校验,这样就取消奇偶校验位。
停止位 • 最后是表示停止位的1信号,这个停止位可以约定持续1 位、1.5 位或2 位的时间宽度。 • 至此一个字符传送完毕,线路又进入空闲,持续为1。经过一段随机的时间后,下一个字符开始传送,又发出起始位。
波特率 • 每秒传送的数据位数。 • 每一个数据位的宽度等于传送波特率的倒数。 • 常用的波特率为2400、4800、9600、19200、38400、57600、115200 bps等。 • 波特率越大,数据传送速度越快,但误码的可能性也越大。
PXA270的UART • PXA270的UART(通用异步串行口)单元提供三个独立的异步串行I/O端口,每个都可以在中断和DMA两种模式下进行。它们支持最高波特率921Kbps。每个UART通道包含2个64位FIFO分别提供给接收和发送。 • PXA270的UART可以进行以下参数的设置:可编程的波特率,红外收/发模式,1或2个停止位,5位,6位,7位或8位数据宽度和奇偶位校验。
UART的构成 • 每个UART包含波特率发生器,接收器,发送器和控制单元。 • 波特率发生器以MCLK为时钟源。 • 发送器和接收器包含64字节FIFO寄存器和移位寄存器,当发送数据的时候,数据先写到FIFO然后拷贝到发送移位寄存器,然后从数据输出端口(TxDn)依次被移位输出。 • 被接收的数据也同样从接收端口(RxDn)移位输入到移位寄存器,然后拷贝到FIFO中。
PXA270的UART • PXA270的UART(通用异步串行口)单元提供三个独立的异步串行I/O端口,每个都可以在中断和DMA两种模式下进行。它们支持最高波特率921Kbps。每个UART通道包含2个64位FIFO分别提供给接收和发送。 • PXA270的UART可以进行以下参数的设置:可编程的波特率,红外收/发模式,1或2个停止位,5位,6位,7位或8位数据宽度和奇偶位校验。
UART的数据发送 • 数据发送帧的格式是可编程的,它包含一个开始位,5到8个数据位,一个可选的奇偶位和一个或两个停止位。 • 发送器也能够产生发送中止条件。中止条件迫使串口输出保持在逻辑0状态,这种状态保持一个传输帧的时间长度。通常在一帧传输数据完整地传输完之后,再将中止信号发送给对方。 • 中止信号发送之后,传送数据连续放到FIFO中(在不使用FIFO模式下,将被放到输出保持寄存器)。
UART的数据接收 • 与数据发送一样,数据接收的帧也是可以编程的,它包含一个开始位,5到8个数据,一个可选的奇偶位和一位或两位停止位。 • 接收器能够检测溢出错误,奇偶校验错误,帧错误和中止状况,每种情况下都将会将一个错误标志置位。
波特率发生器 • 每个UART的波特率发生器为传输提供了串行移位时钟。 • 波特率可以按照下式确定: • BaudRate = 14.7456/(16*Divisor) • Divisor的值在Divisor Latch register(DLL或DLH)设置,例如:如果divisor是24,则波特率为38400bps。 • 对于FFUART(全功能串口)和STURAT(标准串口),Divisor设置值为4到2166-1;对于BTURAT(蓝牙串口),Divisor设置值为1到216-1。
PXA270的UART相关寄存器 • 每个UART都有13个寄存器。12个作为UART操作,另外1个作为慢速红外设置。 • 各寄存器地址如下表