720 likes | 877 Views
ARM 嵌入式系统结构与编程. 大连理工大学软件学院 邱铁 办公楼 409 Tel : 87571521 E_mail: qiutie@dlut.edu.cn 参考教材: 《ARM 嵌入式系统结构与编程 》 清华大学出版社 2009 年 3 月出版. 本章基于嵌入式微控制器 S3C44B0X 和 S3C2410 ,介绍了通用异步收发器( UART )、 I2C 总线的通信原理和 S3C44B0X/S3C2410 的用作图形界面接口的 LCD 控制器,每种功能部件都列出了相应的典型开发实例。. 第 10 章 S3C44B0/S3C2410 通信与 LCD 接口技术.
E N D
ARM嵌入式系统结构与编程 • 大连理工大学软件学院 邱铁 办公楼409 Tel:87571521 E_mail: qiutie@dlut.edu.cn 参考教材:《ARM嵌入式系统结构与编程》 清华大学出版社2009年3月出版
本章基于嵌入式微控制器S3C44B0X和S3C2410,介绍了通用异步收发器(UART)、I2C总线的通信原理和S3C44B0X/S3C2410的用作图形界面接口的LCD控制器,每种功能部件都列出了相应的典型开发实例。本章基于嵌入式微控制器S3C44B0X和S3C2410,介绍了通用异步收发器(UART)、I2C总线的通信原理和S3C44B0X/S3C2410的用作图形界面接口的LCD控制器,每种功能部件都列出了相应的典型开发实例。 第10章S3C44B0/S3C2410通信与LCD接口技术
内容提要 • 10.1 S3C44B0/ S3C2410 UART • 10.2 S3C44B0/ S3C2410 I2C总线接口 • 10.3 S3C44B0/S3C2410 LCD控制器
10.1 S3C44B0/ S3C2410 UART • 通用异步接收和发送UART(Universal Asynchronous Receiver and Transmitter)协议作为一种低速通信协议,广泛应用于通信领域的各种场合。
10.1.1 UART原理 • 1.串行通信的工作方式
2.串行通信的波特率 • 在串行通信中,用波特率来描述数据的传输速度。波特率是每秒钟传送的二进制位数,其单位是bps(bits per second)。 • 是衡量串行数据速度快慢的重要指标。异步串行通信要求通信双方的波特率必须相同。
3.奇偶校验 • 在发送数据时,每个数据后要附加1个奇偶校验位,这个校验位可以为1也可以为0,用来保证包括奇偶校验位在内的所有传输的数据帧中1的的个数为奇数(奇校验)或1的个数为偶数(偶校验)。
5.RS232、EIA-422和EIA-485标准 • RS232接口是1970年由美国电子工业协会(EIA)联合贝尔公司、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。 • 全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”
为扩展应用范围,EIA于1983年在EIA-422基础上制定了EIA-485标准,增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。
10.1.2 S3C44B0/ S3C2410 UART模块 • S3C44B0的UART单元提供两个独立异步串行I/O(SIO)端口,S3C2410的UART提供3个独立异步串行I/O,每一个可以在基于中断和基于DMA的模式下操作。 • S3C44B0的UART可以支持位速率高达115.2K bps,S3C2410的UART可支持高达230.4K bps。每个UART通道包含两个16字节先进先出缓存(FIFO),负责数据的接收和发送。
10.1.3 S3C44B0/ S3C2410 UART操作 • 1.数据发送与接收 • 它包括一个起始位,5~8个数据位,一个可选的奇偶校验位和1~2个停止位,用户可以通过线控制寄存器(ULCONn)的编程来设定。 • 在数据传输完成后产生传输中止信号,在中止信号传输后,可以继续向Tx FIFO(或在非FIFO模式下的Tx 保持寄存器)中发送数据。
2.自动流量控制(AFC): • S3C44B0和S3C2410支持带有nRTS和nCTS信号的自动流量控制。如果希望连接UART到调制解调器,禁止UMCONn寄存器的自动流量控制位,然后通过软件控制nRTS的信号。
3.自环模式: • S3C44B0/S3C2410提供一个测试模式称为自环模式,以解决在通信连接时的错误。在此模式下,发送的数据被直接接收。
4.红外模式: • S3C44B0/S3C2410的UART模块支持红外(IR)发送和接收,可以通过设置UART控制寄存器中的红外模式位选定
当IR处于发送模式时,如果输送的的数据位为0,传输周期是正常串口传输的3/16脉冲;当IR处于接收模式时,接收器必须侦测3/16脉冲周期来识别一个0值。当IR处于发送模式时,如果输送的的数据位为0,传输周期是正常串口传输的3/16脉冲;当IR处于接收模式时,接收器必须侦测3/16脉冲周期来识别一个0值。 • 红外模式数据位传输形式见教材《ARM嵌入式系统结构与编程》图10-6实例
10.1.4 UART中断与波特率的计算 • 1.UART中断 • S3C44B0/S3C2410每个UART有7个状态信号:超时错误、奇偶错误、帧错误、通信中止、接收数据缓冲区就绪、发送数据缓冲区为空和发送移位寄存器为空
举例 • 若波特率为115200bps,时钟源频率MCLK为40MHz,除数UBRDIVn应如何计算? • 解:UBRDIVn =( round_off) (40000000/(115200 X 16))-1 • =( round_off)(21.7)-1 • =20 • 一般为了减小误差,采取四舍五入的原则: • UBRDIVn =( round_off) (40000000/(115200 X 16)+0.5)-1 • =( round_off)(21.7+0.5)-1 • =21
10.1.5 S3C44B0/ S3C2410 UART专用功能寄存器 • 1.UART线控制寄存器(ULCONn) • S3C44B0有2个UART线控制寄存器,ULCON0和ULCON1。 • S3C2410有三个UART控制寄存器,ULCON0,ULCON1和ULCON2。
2.UART控制寄存器UCONn • S3C44B0有2个UART控制寄存器:UCON0和UCON1。S3C2410有三个UART控制寄存器:UCON0,UCON1和UCON2。
3.UART FIFO控制寄存器 • S3C44B0有2个UART FIFO控制寄存器:UFCON0和UFCON1。S3C2410有3个UART FIFO控制寄存器:UFCON0,UFCON1和UFCON2。
4.UART调制解调器控制寄存器 • S3C44B0有2个UART调制解调器控制寄存器,UMCON0和UMCON1。 • S3C2410有3个UART调制解调器控制寄存器:UMCON0,UMCON1和UMCON2。
UART调制解调器控制寄存器详细信息见教材《ARM嵌入式系统结构与编程》表10-5UART调制解调器控制寄存器详细信息见教材《ARM嵌入式系统结构与编程》表10-5
5.UART 发送/接收状态寄存器 • S3C44B0有2个UART发送/接收状态寄存器:UTRSTAT0和UTRSTAT1。 • S3C2410有3个UART发送/接收状态寄存器:UTRSTAT0,UTRSTAT1和UTRSTAT2。
6.UART错误状态寄存器 • S3C44B0有2个UART错误状态寄存器:UERSTAT0和UERSTAT1。 • S3C2410有3个UART错误状态寄存器:UERSTAT0,UERSTAT1和UERSTAT2 • 详细信息见教材《ARM嵌入式系统结构与编程》表10-7
7.UART FIFO状态寄存器 • S3C44B0有2个UART FIFO状态寄存器:UFSTAT0和UFSTAT1。 • S3C2410有3个UART FIFO状态寄存器:UFSTAT0,UFSTAT1和UFSTAT2。
8.UART 调制解调器状态寄存器 • S3C44B0有2个UART调制解调器状态寄存器:UMSTAT0和UMSTAT1。 • S3C2410也有2个UART调制解调器状态寄存器:UMSTAT0和UMSTAT1 • 详细信息见教材《ARM嵌入式系统结构与编程》表10-9
9.UART 发送缓冲寄存器 • S3C44B0有2个UART发送缓冲寄存器:UTXH0和UTXH1。 • S3C2410也有3个UART发送缓冲寄存器:UTXH0、UTXH1和UTXH2。
10.UART 接收缓冲寄存器 • S3C44B0有2个UART发送缓冲寄存器:URXH0和URXH1。 • S3C2410也有3个UART发送缓冲寄存器:URXH0、URXH1和URXH2。
10.1.6 S3C44B0/ S3C2410 UART设计实例 • RS-232接口设计
软件设计 • 串口通信的软件设计包括硬件设备的初始化、数据发送程序与数据接收程序,其中接收可以采用中断的方式,可以采用查询的方式。 • 具本编程实例见教材《ARM嵌入式系统结构与编程》第314页
10.2 S3C44B0/ S3C2410 I2C总线接口 • I2C(Inter-Integrated Circuit)总线是由Philips半导体公司于上世纪80年为了实现在同一块电路板上的各个器件进行简单的消息传递而设计的。