版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021-7-131 嵌入式系统原理与应用技术嵌入式系统原理与应用技术 袁志勇袁志勇 王景存王景存 章登义章登义 刘树波刘树波 北京北京: 北京航空航天大学出版社北京航空航天大学出版社, 2009.11 PPT教学课件教学课件 2021-7-132 第第8 8章章 串行通信接口串行通信接口 8.1 串行通信基础知识 8.2 S3C2410串行接口 8.3 串行通信举例 8.4 IIS串行数字音频接口 2021-7-133 8.1 8.1 串行通信基础知识串行通信基础知识 n串行数据传送模式 p单工单工 p半双工半双工 p全双工全双工 2021-7-134 8.1 8.1 串行通信基础知识串行通
2、信基础知识 n串行通信方式 p异步串行通信方式异步串行通信方式 异步式传输把每一个字符当作独立的信息来传送,并按照一固定且预定的 时序传送,但在字符之间却取决于字符与字符的任意时序。而一个完整的字符 传送,包含一个起始位以及所欲传送的字符,加上校验位和停止位。 异步通信必须遵循的3项规定: 帧格式 波特率 校验位 2021-7-135 8.1 8.1 串行通信基础知识串行通信基础知识 n串行通信方式 p异步串行通信方式异步串行通信方式 帧格式 2021-7-136 8.1 8.1 串行通信基础知识串行通信基础知识 n串行通信方式 p异步串行通信方式异步串行通信方式 波特率:波特率就是传送数据位
3、的速率,用位/秒(bit/s)表示。 例如,数据传送的速率为120字符/秒,每帧包括10个数据位,则传 送波特率为: 10 位/字符120字符/秒=1200位/秒=1200波特 2021-7-137 8.1 8.1 串行通信基础知识串行通信基础知识 n串行通信方式 p异步串行通信方式异步串行通信方式 校验位:由于对字符传送做正确性检查,可以分为奇校验和偶校验。奇 校验就是字符中有奇数个“1”,该位置1,否则为0;偶校验就是字符中 有偶数个“1”,该位置1,否则为0。 2021-7-138 8.1 8.1 串行通信基础知识串行通信基础知识 n串行通信方式 p同步串行通信方式同步串行通信方式 同步
4、串行通信方式中一次连续传输一块数据(常称之为信息帧),开始 前使用同步字符作为同步的依据。字符块之后再加入适当的错误检测数 据才传送出去。采用同步通信时,在传输线上没有字符传输时,要发送 专用的“空闲”字符或同步字符,其原因是同步传输字符必须连续传输, 不允许有间隙,所以,同步串行通信方式传输效率高。但电路结构复杂, 对硬件要求高。 误码检测一般采用CRC(循环冗余校验)校验法 。 2021-7-139 8.1 8.1 串行通信基础知识串行通信基础知识 nRS-232C串行通信接口 RS-232C是由美国电子工业协会(Electronic Industries Association, EIA
5、)于1969年制定的一种串行通信接口标准,并被推荐为串行通信接口 的国际标准,得到了广泛应用。EIA把RS-232C定义为:“在数据终端设 备(DTE)和数据通信设备(DCE)之间使用串行二进制数据交换的接 口”。RS-2323C标准包括了接口的机械特性、电气信号特征和交换功能 特征。它用于连接2种设备:数据终端设备和数据通信设备。 2021-7-1310 8.1 8.1 串行通信基础知识串行通信基础知识 nRS-232C串行通信接口 pRS-232C接口信号接口信号 2021-7-1311 8.1 8.1 串行通信基础知识串行通信基础知识 nRS-232C串行通信接口 pRS-232C接口电
6、气规格接口电气规格 计算机系统外围接口一般采用TTL标准,即以+5V代表逻辑“1”,而接地电压代 表逻辑“0”,而RS-232C以+12V的电压视为逻辑“0”,-12V的电压视为逻辑“1”。 所以,串行接口电路中需要将TTL标准与RS-232C标准之间进行电平转换。 2021-7-1312 8.1 8.1 串行通信基础知识串行通信基础知识 nRS-422和RS-485标准 RS-422和RS-485都是在RS-232C的基础上发展起来的串行数据接口标准, 都是由EIA制定并发布的。 pRS-422 pRS-485 RS-422是为弥补RS-232C的不足而提出的,主要是为了改进RS-232C通
7、信距离 短、速率低的缺点,RS-422定义了一种“平衡”通信接口,将速率提高到 10Mb/s,传输距离延长到1220m(速率低于100kb/s时),并允许在一条总线上 连接最多10个接收器。 为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,它增 加了总线上设备的个数,定义了在最大设备个数情况下的电气特性(以保证 足够的信号电压)和双向通信的能力(允许多个发送器连接到同一条总线 上),同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围, 后命名为TIA/EIA-485-A标准。 2021-7-1313 8.2 S3C24108.2 S3C2410串行接口
8、串行接口 S3C2410内部具有3个独立的UART控制器,每个UART通道包含2个16位的接收和 发送FIFO,数据接收和发送的波特率可编程。UART也可实现红外(IR)接收和发送。 串行数据包括1位或2位停止位, 5位、6位、7位或8位数据位和1位奇偶校验位。 RxD0,TxD0,RxD1,TxD1,RxD2和TxD2可以工作在中断模式或DMA模式。 通道0,1和2包含了IrDA 1.0和16位FIFO。 通道0和1拥有nRTS0,nCTS0,nRTS1和nCTS1信号。 支持发送和接收握手协议。 2021-7-1314 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C
9、2410 UART结构结构 2021-7-1315 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART工作原理工作原理 S3C2410 UART的基本工作包括数据发送,数据接收,自动流控制,中断 /DMA请求产生,波特率产生,回环模式和红外模式。 p数据发送数据发送 发送的数据帧是可编程的,包含一位起始位,58位数据位,一位可选 的校验位和12位的停止位,这些可以在线路控制寄存器(ULCONn)中 指定。发送器也可以产生一个暂停状态,将输出在一个帧的时间内强制 为逻辑0。当前帧发送完后,才能发送产生暂停。在暂停状态结束后, 可以继续发送FIFO中的数据(或
10、继续发送无FIFO模式下发送保持寄存器 中的数据)。 2021-7-1316 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART工作原理工作原理 p数据接收数据接收 接收器在接收数据的同时检测溢出错误、奇偶校验错误、帧错误和暂停 错误。每种错误都可以设置相应的错误标志位。溢出错误是指在前面数 据被读取之前,刚收到的数据覆盖了前面的数据。奇偶校验错误是指接 收端对接收到的数据进行校验时产生了与发送端不同的校验标志。帧错 误是指接收到的数据没有一个有效的停止位。暂停错误是指RxDn维持逻 辑0的时间超过了一个帧的时间长度。 2021-7-1317 8.2 S3
11、C24108.2 S3C2410串行接口串行接口 nS3C2410 UART工作原理工作原理 p自动流控制自动流控制 流控制指的是数据流控制。当数据在两个串口之间传输时,常常会由于 接收端数据处理来不及,造成接收缓冲区满,此时发送端如果继续发送 数据,接收端就会丢失数据。流控制可以解决这个问题。 S3C2410的UART0和UART1通过nRTS和nCTS信号支持自动流控制。 也可以设置为无自动流控制功能。 S3C2410的UART2 不支持自动流控制功能。 2021-7-1318 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART工作原理工作原理 p中断
12、中断/DMA请求产生请求产生 q S3C2410 的每一个UART有7个状态(发送/接收/错误)信号: 溢出错误 奇偶校验错误 帧错误 暂停错误 接收缓冲数据准备就绪 发送缓冲空和发送移位器空 每种状态都可以在UTRSTATn或UERSTATn寄存器中的相应标志位设置。 2021-7-1319 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART工作原理工作原理 p中断中断/DMA请求产生请求产生 q对于以上7个状态中的4个错误状态,如果控制寄存器(UCONn)中的错误 中断请求使能位置1,发生任何一个错误时都会引起中断,再通过查询 UERSTATn寄存器来
13、确定具体发生了哪一类错误,然后进行相应的错误 处理。 q在FIFO模式下, 如果UCONn寄存器中接收方式位置1,意味着采用中断 或轮询方式接收数据, 当接收器将接收到的数据传送到FIFO并且数量达 到了接收FIFO的接收门限值, 就会产生接收中断。在非FIFO模式下,如 果允许接收中断或轮询,接收到的数据从接收移位寄存器传送到接收保 持寄存器后,将产生接收中断。 2021-7-1320 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART工作原理工作原理 p中断中断/DMA请求产生请求产生 q在FIFO模式下, 如果UCONn寄存器中发送方式位置1,意味着
14、采用中断 或轮询方式发送数据, 当发送器将发送数据从发送FIFO传送到移位器中 并且发送FIFO中的数据数量达到了发送FIFO的发送门限值,就会产生 发送中断。在非FIFO模式下,如果允许发送中断或轮询,发送保持寄存 器将数据发送到移位器后,将产生发送中断。 q如果UCONn寄存器中发送方式和接收方式的DMAn位都置1,那么接收 和发送完成后将产生DMAn请求,执行DMA操作,而不是中断请求。 2021-7-1321 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART工作原理工作原理 p波特率产生波特率产生 q波特率产生器提供时钟给发送器和接收器。波特率的
15、时钟源可以选择为 S3C2410的内部系统时钟或UCLK,也就是分频源可以通过设置UCONn 中的时钟选择位来选择。波特率时钟是由时钟源除以16和一个由UART 波特率分频系数寄存器(UBRDIVn)指定的16位分频系数产生的。 q当使用S3C2410的内部系统时钟时,UBRDIVn中的分频系数由下式计算 得出: UBRDIVn=(int)(PCLK/(bps*16)-1 这里的分频系数必须是从1到216 -1。 p当使用时钟源UCLK时,UBRDIVn中的分频系数由下式计算得出: UBRDIVn=(int)(UCLK/(bps*16)-1 这里的分频系数必须是从1到216 -1,并且UCLK
16、必须要小于PCLK。 2021-7-1322 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART工作原理工作原理 p波特率产生波特率产生 q例如,如果串口波特率是115200bps,PCLK或UCLK为40MHz,则 UBRDIVn中的分频系数为: UBRDIVn=(int)((40000000/(115200*16)-1 =(int)(21.7)-1 =20 2021-7-1323 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART工作原理工作原理 p回环模式回环模式 q回环模式主要用来对S3C2410 的UART提
17、供测试,为解决通信连接中的 错误提供辅助手段。这种模式从结构上使UART中RXD和TXD之间直接 连接。这种模式下,发送数据通过RXD被接收器接收,以便处理器验证 每一个串行口的内部发送和接收数据的正确性。这种模式可以通过设置 UCONn寄存器的反馈位来实现。 2021-7-1324 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART工作原理工作原理 p红外模式红外模式 qS3C2410 UART模块支持红外(IR)发送和接收,可以通过设置UART 线路控制寄存器(ULCONn)中的红外模式位来选择。 qIR发送时,数据中的逻辑1不发送脉冲,逻辑0发送脉冲
18、,发送的 脉冲宽度是通常串口发送数据位的3/16。IR接收时,接收器检测到通常 串口数据位3/16的脉冲宽度作为逻辑0值,检测到没有脉冲作为逻辑 1值。 2021-7-1325 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART专用寄存器专用寄存器 pS3C2410 UART专用寄存器主要包括: p线路控制寄存器(ULCON0,ULCON1和 ULCON2) p控制寄存器(UCON0,UCON1 和 UCON2) pFIFO控制寄存器(UFCON0,UFCON1和UFCON2) pMODEM控制寄存器(UMCON0和UMCON1) p发送接收状态寄存器(U
19、TRSTAT0,UTRSTAT1和UTRSTAT2) p错误状态寄存器(UERSTAT0,UERSTAT1和UERSTAT2) pFIFO状态寄存器(UFSTAT0,UFSTAT1和UFSTAT2) pMODEM状态寄存器(UMSTAT0和UMSTAT1) p发送缓存寄存器(UTXH0,UTXH1和UTXH2) p接收缓存寄存器(URXH0,URXH1和URXH2) p波特率分频系数寄存器(UBRDIV0, UBRDIV1和UBRDIV2) 2021-7-1326 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART专用寄存器专用寄存器 pUART线路控制寄
20、存器( ULCON0、ULCON1和ULCON2 ) ULCON0、ULCON1和ULCON2寄存器描述 寄存器地址读/写描述复位值 ULCON00 x50000000R/WUART通道0线路 控制寄存器 0 x00 ULCON10 x50004000R/WUART通道1线路 控制寄存器 0 x00 ULCON20 x50008000R/WUART通道2线路 控制寄存器 0 x00 2021-7-1327 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART专用寄存器专用寄存器 pUART线路控制寄存器( ULCON0、ULCON1和ULCON2 ) ULC
21、ON0、ULCON1和ULCON2寄存器相应位描述 ULCONn位描述复位值 保留70 红外模式6指示是否使用红外模式。 0:正常操作模式 1:红外接收发送模式 0 校验模式5:3指示UART发送和接收操作中校验位的产生和校验类型。 0 xx:不进行校验 100:奇校验 101:偶校验 110:强制为1 111:强制为0 000 停止位数目2指示帧结束的停止位有几位。 0:每帧一位 1:每帧两位 0 Word Length1:0指示每帧发送和接收的数据位有多少位。 00:5位 01:6位 10:7位 11:8位 00 2021-7-1328 8.2 S3C24108.2 S3C2410串行接口
22、串行接口 nS3C2410 UART专用寄存器专用寄存器 pUART控制寄存器 (UCON0,UCON1 和 UCON2) UCON0、UCON1和UCON2寄存器描述 寄存器地址读/写描述复位值 UCON00 x50000004R/WUART通道0控制寄存 器 0 x00 UCON10 x50004004R/WUART通道1控制寄存 器 0 x00 UCON20 x50008004R/WUART通道2控制寄存 器 0 x00 2021-7-1329 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART专用寄存器专用寄存器 pUART控制寄存器 (UCON0
23、,UCON1 和 UCON2) UCON0、UCON1和UCON2寄存器相应位描述 UCONn位描述复位值 时钟选择10选择PCLK或UCLK作为产生UART波特率的时钟源。 0:PCLK 1:UCLK 0 发送中断请求方式9中断请求方式。 0:脉冲 1:电平 0 接收中断请求方式8中断请求方式。 0:脉冲 1:电平 0 接收超时中断使能7在UART的FIFO模式下,允许或禁用接收超时中断。 0:禁止 1:允许 0 接收错误中断使能6允许或禁止接收操作异常引起的错误中断。 0:禁止 1:允许 0 回环模式50:正常操作 1:回环模式 0 暂停模式4指示是否发送一个暂停帧,如果发送,发送后该位自
24、动清。 0:正常发送 1:发送一个暂停帧 0 发送模式3:2指示UART发送允许或禁用,以及写发送数据到UART发送缓存寄存器的方式。 00:禁止发送 01:中断或轮询方式 10:DMA0请求(仅UART0) DMA3请求(仅UART2) 11:DMA1请求(仅UART1) 00 接收模式1:0指示UART接收允许或禁用,以及当前从UART缓存寄存器读取数据的方式。 00:禁止接收 01:中断或轮询方式 10:DMA0请求(仅UART0) DMA3请求(仅UART2) 11:DMA1请求(仅UART1) 00 2021-7-1330 8.2 S3C24108.2 S3C2410串行接口串行接口
25、 nS3C2410 UART专用寄存器专用寄存器 pUART FIFO控制寄存器 (UFCON0,UFCON1和UFCON2) UFCON0、UFCON1和UFCON2寄存器描述 寄存器地址读/写描述复位值 UFCON00 x50000008R/WUART通道0 FIFO控制寄存器0 x0 UFCON10 x50004008R/WUART通道1 FIFO控制寄存器0 x0 UFCON20 x50008008R/WUART通道2 FIFO控制寄存器0 x0 2021-7-1331 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART专用寄存器专用寄存器 pUA
26、RT FIFO控制寄存器 (UFCON0,UFCON1和UFCON2) UFCON0、UFCON1和UFCON2寄存器相应位描述 UFCONn位描述复位值 发送FIFO门限值7:6指示发送FIFO的门限值 00:空 01:4字节 10:8字节 11:12字节 00 接收FIFO门限值5:4指示接收FIFO的门限值。 00:4字节 01:8字节 10:12字节 11:16字节 00 保留3保留0 发送FIFO复位2该位在FIFO复位后自动清除。 0:正常工作 1:发送FIFO复位 0 接收FIFO复位1该位在FIFO复位后自动清除。 0:正常工作 1:接收FIFO复位 0 FIFO 允许00:禁
27、止FIFO工作 1:允许FIFO工作 0 2021-7-1332 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART专用寄存器专用寄存器 pUART调制解调控制寄存器 (UMCON0和UMCON1 ) UMCON0和UMCON1寄存器描述 寄存器地址读/写描述复位值 UMCON00 x5000000CR/WUART通道0 MODEM控制寄存器0 x0 UMCON10 x5000400CR/WUART通道1 MODEM控制寄存器0 x0 保留0 x5000800C-保留未定义 2021-7-1333 8.2 S3C24108.2 S3C2410串行接口串行接
28、口 nS3C2410 UART专用寄存器专用寄存器 pUART调制解调控制寄存器 (UMCON0和UMCON1 ) UMCON0和UMCON1寄存器相应位描述 UMCONn位描述复位值 保留7:5这些位必须为0000 自动流控制(AFC)40:禁止 1:允许 0 保留3:1这些位必须为0000 请求发送0如果允许AFC,该位将被忽略,S3C2410会自 动控制nRTS。如果禁止AFC,nRTS必须由软 件控制。 0:nRTS无效 1:nRTS有效 0 2021-7-1334 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART专用寄存器专用寄存器 pUART
29、 发送接收状态寄存器 (UTRSTAT0,UTRSTAT1和UTRSTAT2 ) UTRSTAT0、UTRSTAT1和UTRSTAT2寄存器描述 寄存器地址读/写描述复位值 UTRSTAT00 x50000010RUART通道0发送接收状态寄存器0 x6 UTRSTAT10 x50004010RUART通道1发送接收状态寄存器0 x6 UTRSTAT20 x50008010RUART通道2发送接收状态寄存器0 x6 2021-7-1335 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART专用寄存器专用寄存器 pUART 发送接收状态寄存器 (UTRSTA
30、T0,UTRSTAT1和UTRSTAT2 ) UTRSTAT0、UTRSTAT1和UTRSTAT2寄存器相应位描述 UTRSTATn位描述复位值 发送器为空2当发送缓存和发送移位寄存器为空时,自动 置1。 0 :不为空 1:发生器为空 1 发送缓存为空1当发送缓存为空时,自动置1。 0:发送缓存不为空 1:发送缓存为空 1 接受缓存数据准备就绪0接收缓存寄存器包含有效数据,自动置1。 0:接收缓存寄存器空 1:接收缓存寄存器有接收到的有效数据 0 2021-7-1336 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART专用寄存器专用寄存器 pUART错误
31、状态寄存器 (UERSTAT0,UERSTAT1和UERSTAT2 ) UERSTAT0、UERSTAT1和UERSTAT2寄存器描述 寄存器地址读/写描述复位值 UERSTAT00 x50000014RUART通道0接收错误状态寄存器0 x0 UERSTAT10 x50004014RUART通道1接收错误状态寄存器0 x0 UERSTAT20 x50008014RUART通道2接收错误状态寄存器0 x0 2021-7-1337 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART专用寄存器专用寄存器 pUART错误状态寄存器 (UERSTAT0,UERST
32、AT1和UERSTAT2 ) UERSTAT0、UERSTAT1和UERSTAT2寄存器相应位描述 UERSTATn位描述复位值 保留3保留0 帧错误2在接收操作中,任何时候发 生帧错误该位都将自动置1。 0:接收时未发生帧错误 1:接收时发生帧错误 0 保留1保留0 溢出错误0在接收操作中,任何时候发 生帧错误该位都将自动置1。 0:接收时未发生溢出错误 1:接收时发生溢出错误 0 2021-7-1338 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART专用寄存器专用寄存器 pUART FIFO状态寄存器 (UFSTAT0,UFSTAT1和UFSTAT
33、2 ) UFSTAT0、UFSTAT1和UFSTAT2寄存器描述 寄存器地址读/写描述复位值 UFSTAT00 x50000018RUART通道0 FIFO状态寄存器0 x00 UFSTAT10 x50004018RUART通道1 FIFO状态寄存器0 x00 UFSTAT20 x50008018RUART通道2 FIFO状态寄存器0 x00 2021-7-1339 8.2 S3C24108.2 S3C2410串行接口串行接口 nS3C2410 UART专用寄存器专用寄存器 pUART FIFO状态寄存器 (UFSTAT0,UFSTAT1和UFSTAT2 ) UFSTAT0、UFSTAT1和U
34、FSTAT2寄存器相应位描述 UFSTATn位描述复位值 保留15:10保留0 发送FIFO满9发送操作中,发送FIFO满的任何时候, 该位都将自动置1 0:0字节=发送FIFO数据 =15字节 1:满 0 接收FIFO满8接收操作中,接收FIFO满的任何时候, 该位都将自动置1。 0:0字节=接收FIFO数据 0- 2021-7-1348 8.3 8.3 串行通信举例串行通信举例 nRS-232C接口设计接口设计 p MAX3232实现2路3线串口电平转换 2021-7-1349 8.3 8.3 串行通信举例串行通信举例 nRS-232C接口设计接口设计 p串口初始化 例8.1:下面以UAR
35、T0为例,说明串口初始化函数。该函数虽然设计成通用的串口初 始化函数,即对UART0、UART1、UART2均可以初始化,但本例子中只给出 UART0和UART1初始化对应的代码,对于UART2的初始化代码未给出。与UART1 初始化代码类似,只不过涉及的寄存器不同而已。 /* 功能:初始化串口(不使用FIFO,不产生接收错误中断) 参数: Uartnum:选择UART0/UART1/UART2(0/1/2) parity: 选择奇偶校验方式(0:无校验,4:奇校验,5:偶校验) stop: 选择停止位(0:1位停止位,1:2位停止位) data: 选择数据位(0:5位,1:6位,2:7位,3
36、:8位) baud: 波特率 2021-7-1350 8.3 8.3 串行通信举例串行通信举例 nRS-232C接口设计接口设计 p串口初始化 例8.1续续 */ void rs232_Init(INT8U com ,INT32U parity ,INT32U stop ,INT32U data ,int baud) if(Uartnum =0) /初始化UART0 rGPHCON=(rGPHCON /设置GPH端口为UART rUFCON0=0 x0; /不使用FIFO rUMCON0=0 x0; /禁止自动流控制 rULCON0=(parity3)|(stop2)|(data); /8个数
37、据位,1个停止位,奇偶校验位; /不采用红外线传输模式 rUCON0=0 x205; /当Tx缓冲为空时,以电平信号触发发送中断请求 /当Rx缓冲有数据时,以脉冲信号触发接收中断请求 /禁止超时中断,禁止产生接收出错状态的中断请求 /禁止回环模式,禁止发送暂停信号,发送数据操作按中断方式 /接收数据操作按中断方式 rUBRDIV0=(int)(PCLK/(baud*16)-1 ; /设置波特率 rINTMSK=rINTMSK /开中断 pISR_URXD0=(int)rxCharDone_0; /设置中断入口 2021-7-1351 8.3 8.3 串行通信举例串行通信举例 nRS-232C接
38、口设计接口设计 p串口初始化 例8.1续续 */ else if (Uartnum =1) /UART1的初始化 rUFCON1=0 x0; rUMCON1=0 x0; rULCON1=(parity3)|(stop2)|(data); rUCON1=0 x205; rUBRDIV0=(int)(PCLK/(baud*16)-1 ; else / UART2的初始化与UART1类似,略 2021-7-1352 8.3 8.3 串行通信举例串行通信举例 nRS-232C接口设计接口设计 p发送/接收程序举例 例8.2 发送和接收程序发送和接收程序 /* 功能:字符发送 参数: Uartnum:选
39、择UART0/UART1/UART2(0/1/2) data:要发送的字符 */ /*字符发送程序Uart_SendByte*/ #define WrUTXH0 (ch) ( * (volatile unsigned char * ) 0 x50000020)=(unsigned char)(ch) #define WrUTXH1 (ch) ( * (volatile unsigned char *) 0 x50004020)=(unsigned char)(ch) #define WrUTXH2 (ch) ( * (volatile unsigned char *) 0 x50008020)
40、=(unsigned char)(ch) 2021-7-1353 8.3 8.3 串行通信举例串行通信举例 nRS-232C接口设计接口设计 p发送/接收程序举例 例8.2 续续 void Uart_SendByte (INT8U Uartnum , INT8U data) if (Uartnum =0) /UART0 while (rUTRSTAT0 Unsigned short * rxdata; Rx_Done=0; Tx_Done=0; /由于使用DMA方式进行语音录放,因此这里需要注册DMA中断 PISR_DMA2= ( unsigned ) TX_Done; PISR_DMA1=
41、( unsigned ) TX_Done; rINTMSK rINTMSK rxdata= ( unsigned short * ) malloc ( 0 x80000 ) ; /384 KB for ( i= 0 ; i 0 xffff0 ; i+ ) * ( rxdata+ i )= 0 ; 2021-7-1379 8.4 IIS8.4 IIS串行数字音频接口串行数字音频接口 nIIS接口应用举例接口应用举例 p音频录放的编程实例 例8.3续 While ( 1 ) /录音过程,DMA1用于音频输入 rDMASKTRIG1 = ( 12 ) | ( 01 ) ; /初始化DMA通道1 rD
42、ISRC1 = ( U32 ) IISFIFO ;/接收FIFO地址 rDISRCC1 = ( 11 ) | ( 10 ) ;/源=APB,地址固定 rDIDSTC1 = ( 01 ) | ( 00 ) ;/目录=AHB,地址增加 rDCON1 = ( 031) | (030) | ( 129 ) | (028 ) | ( 027 ) | ( 224 ) | ( 123 ) | ( 122 ) | ( 120 ) | ( 0 xffff0 ) ; /握手模式,与APB同步,中断使能,单元发送,单个服务模式,目标=IISSDI /硬件请求模式,不自动重加载,半字 rDMASKTRIG1 = (
43、11 ) ; /DMA1通道打开 /初始化IIS,用于接收 rIISCON = ( 05 ) | ( 14 ) | ( 11 ) ; /发送DMA请求禁止,接收DMA请求使能,IIS预分频器使能 rIISMOD = ( 08 ) | ( 16 ) | ( 05 ) | ( 44 ) | ( 13 ) | ( 02 ) | (10) ; /主模式,接收模式,IIS格式,16位,主时钟频率256fs /串行数据位时钟频率32fs rIISPSR = ( 18 ) | ( 13 ) ; /预分频值A=45MHZ/8 /预分频值B=45MHZ/8 rIISFCON = ( 015) | (114 ) | ( 013 ) | (112 ) ;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年技术等级岗位考试(汽车驾驶员技师)练习题及答案
- 2026年监理工程师考试《土建控制》试题及答案
- 2026年江苏省苏州市保安员证考试题库及答案(考核大全)
- 2026年临床医学检验临床微生物题库150道及答案【网校专用】
- 2026年内科医师定期考核试题库150道附答案(培优a卷)
- 2026年农村信用社稽核试题(附答案)
- 2026年普法学法知识竞赛题库及答案
- 2026年人工智能训练师四级认证考试真题题库
- 16 爬天都峰 课件 2026-2027学年统编版语文四年级上册
- 麦肯锡 -领导者如何将人工智能转化为增长动力 How leaders are turning AI into growth
- 《周长与面积的变化》教案(2课时)-2026-2027学年苏教版(新教材)小学数学四年级上册
- 2026年广西壮族自治区高职单招职业适应性测试题库及答案
- 2026北交所笔试题目及答案
- 安远县(2026年)检察院书记员考试试题及答案
- 农机修理工职业技能等级认定考试复习题库(附答案)
- 雨课堂学堂在线学堂云《实验室安全教育(西南石油)》单元测试考核答案
- 2026年包头铁道职业技术学院单招职业技能测试题库附答案详解(满分必刷)
- 2025-2030中国硼矿行业营销模式及竞争格局分析研究报告
- 江西省2018-2024年中考满分作文121篇
- 城市更新项目的房地产营销方案
- 地氟烷的临床应用
评论
0/150
提交评论