版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于HCS12的嵌入式系统设计,基于HCS12的嵌入式系统设计,合肥工业大学 吴 晔,张 阳,滕 勤 Email:, TEL13966717615,基于HCS12的嵌入式系统设计,第10章 S12串行通信接口模块及其应用实例,SCI模块概述 SCI 模块结构组成和特点 SCI模块寄存器及设置 SCI模块基础应用实例 智能车系统中SCI模块的应用,基于HCS12的嵌入式系统设计,10.1 SCI模块概述,串行通信是微控制器与外界进行信息交换的一种方式。MC9S12DG128微控制器内部有一个全双工串行通信接口,称为SCI。 串行通信是指数据一位一位地按顺序传送的通信方式
2、,其突出优点是只需一根传输线,可大大降低硬件成本,特别适合远距离通信。其缺点是传输速度较低,每秒内能发送或接收的二进制位数称为波特率。若发送一位时间为t,则波特率为1/t。 MC9S12DG128单片机内置的SCI模块是全双工、波特率可编程设置、可编程选择8位数据或9位数据格式的串行通信接口(也叫做串口)。本章着重介绍SCI模块的特性、寄存器功能及设置,并通过一些基础应用实例和SCI模块在自主寻迹智能车上的应用,让读者掌握SCI模块的应用及编程方法。,基于HCS12的嵌入式系统设计,10.2 SCI模块结构组成和特点,MC9S12DG128单片机内置的SCI模块如图10.1所示。,基于HCS1
3、2的嵌入式系统设计,10.2 SCI模块结构组成和特点,SCI模块具有以下基本特征: 全双工运行; 标准不归零传号/空号(NRZ)数据格式; 13位波特率选择; 可编程的8位或9位数据格式; 独立使能发送器和接收器; 可编程的发送器奇偶校验; 两种接收器唤醒模式: 空闲线唤醒; 地址标志唤醒;,8个驱动中断的标志位: 发送器空; 传输完成; 接收器满; 空闲接收器输入; 接收器复写错误; 噪声错误; 帧错误; 奇偶校验错误; 接收器帧错误检测; 硬件奇偶校验; 1/16位时间噪声检测。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,MC9S12DG128的SCI模块共有8个寄存器
4、,详见表10.1。对于112引脚的MC9S12DG128,内部有两个SCI模块,分别是SCI0和SCI1,表10.1中分别列出了SCI0和SCI1两个模块中各寄存器地址。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,10.3.1 SCI波特率寄存器,SCI波特率寄存器(SCI Baud Rate Registers)用来设置SCI的波特率,如图10.2所示,计算波特率公示为 SCI波特率=SCI模块时钟/ (16BR) 其中,BR是SCI波特率寄存器SBR12到SBR0的内容。波特率寄存器的数值从18191。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,10.3
5、.1 SCI波特率寄存器,读:任何时刻,如果只对SCIBDH寄存器作写入操作,紧接着读取该寄存器无法返回正确数据,直到对SCIBDL也赋值;写:任何时刻。 SBR12SBR0:SCI波特率位。SCI的波特率由这13位确定。 注意1:复位后,第一次只有TE或RE位置位,波特率发生器才正常工作。当BR=0时,波特率发生器禁止。 注意2:如果只对SCIBDH寄存器赋值而不赋值SCIBDL寄存器,写操作是无效的,因为写入SCIBDH的数值只是放在一个临时寄存器中,直到写入SCIBDL寄存器时才将数值放入SCIBDH寄存器。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,10.3.2 SC
6、I控制寄存器1,SCI控制寄存器1(SCI Control Register 1,SCICR1)如图10.3所示。,读:任何时刻;写:任何时刻。 LOOPS:环路选择位。在环路操作模式下,RXD引脚和SCI断开,发送器输出在内部和接收器输入相连。必须发送器和接收器均被使能的情况下才能够使用环路功能。环路操作如图10.4所示。 1表示环路操作模式使能; 0表示普通操作模式使能。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,10.3.2 SCI控制寄存器1,接收器输入由RSRC位决定。,SCISWAI:等待模式下SCI停止位。 1表示SCI在等待模式下禁止; 0表示SCI在等待模式
7、下使能。 RSRC:接收器来源位。当LOOPS=1时,RSRC位决定接收器移位寄存器输入的来源。 1表示接收器输入连接到外部发送器,单线模式如图10.5所示; 0表示接收器输入连接到内部发送器输出。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,10.3.2 SCI控制寄存器1,LOOPS位和RSRC组合选择环路模式或单线模式参见表10.2。,M:数据格式选择位,该位决定数据字符长度是8位还是9位。 1表示1位起始位,9位数据位,1位停止位; 0表示1位起始位,8位数据位,1位停止位。 WAKE:唤醒条件位,该位决定了何种条件唤醒SCI,接收数据字符的最高位为1(地址屏蔽)或者R
8、XD上的空闲条件。 1表示地址屏蔽唤醒; 0表示空闲线唤醒。 ILT:空闲线类型位,该位决定了何时接收器开始计数逻辑1作为空闲字符位。计数开始于起始位之后或者停止位之后。如果计数开始于起始位之后,停止位之前的一串逻辑1会导致一个空闲字符的错误识别。开始于停止位之后的计数避免了错误空闲字符的识别,但是需要适当的同步传输。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,10.3.2 SCI控制寄存器1,ILT:空闲线类型位,该位决定了何时接收器开始计数逻辑1作为空闲字符位。计数开始于起始位之后或者停止位之后。如果计数开始于起始位之后,停止位之前的一串逻辑1会导致一个空闲字符的错误识别
9、。开始于停止位之后的计数避免了错误空闲字符的识别,但是需要适当的同步传输。 1表示空闲字符开始于停止位之后; 0表示空闲字符开始于起始位之后。 PE:奇偶校验使能位,该位使能奇偶校验功能。当奇偶校验功能使能时,会在传输字符的最高位插入一个奇偶校验位。 1表示使能奇偶校验功能; 0表示禁止奇偶校验功能。 PT:奇偶校验类型选择位,该位决定了使用奇校验还是偶校验。如果采用偶校验,当传输数据中1的个数为奇数时,奇偶校验位为1;当传输数据中1的个数为偶数时,奇偶校验位为0。如果采用奇校验,当传输数据中1的个数为奇数时,奇偶校验位为0;当传输数据中1的个数为偶数时,奇偶校验位为1。 1表示奇校验; 0表
10、示偶校验。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,10.3.3 SCI控制寄存器2,SCI控制寄存器2(SCI Control Register 2,SCICR2)如图10.6所示。,读:任何时刻;写:任何时刻。 TIE:发送器中断使能标志,该位允许发送数据寄存器空标志TDRE产生中断请求。 1表示TDRE中断请求使能; 0表示TDRE中断请求禁止。 TCIE:发送完成中断使能位,该位允许发送完成标志TC产生中断请求。 1表示TC中断请求使能; 0 表示TC中断请求禁止。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,10.3.3 SCI控制寄存器2,RIE
11、:接收器满中断使能位,该位允许接收数据寄存器满标志RDRF或者溢出标志OR产生中断请求。 1表示RDRF或OR中断请求使能; 0表示RDRF或OR中断请求禁止。 ILIE:空闲线中断使能位,该位允许空闲线标志IDLE产生中断请求。 1表示IDLE中断请求使能; 0表示IDLE中断请求禁止。 TE:发送器使能位,该位使能SCI发送器并配置TXD引脚由SCI控制,TE位能够用于发送空闲报头。 1表示发送器使能; 0表示发送器禁止。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,10.3.3 SCI控制寄存器2,RE:接收器使能位,该位使能SCI接收器。 1表示接收器使能; 0表示接收
12、器禁止。 RWU:接收器唤醒位,该位使能SCI接收器。 1表示RWU使能唤醒功能并禁止接收器中断请求,硬件通过自动清除RWU位来唤醒接收器; 0表示普通操作。 SBK:发送中止符位,该位使能SCI发送器。SBK置位发送中止字符(当BK13置0,则发送10个或11个逻辑0;当BK13置位,则为13或14个逻辑0)。在完成发送中止符前自动清除SBK位。只要SBK置位,发送器连续发送完整中止符(10或11位;13或14位逻辑0)。 1表示发送中止符; 0表示没有中止符。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,10.3.4 SCI状态寄存器1,SCISR1和SCISR2寄存器为M
13、CU提供产生SCI中断输入源的状态查询,如图10.7所示。清除这些标志位的过程需要读取状态寄存器,然后通过读或者写SCI数据寄存器才能实现。在这两步之间允许执行其他指令,只要不影响I/O操作,但是两步的操作顺序对于标志位清除是必需的。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,10.3.4 SCI状态寄存器1,读:任何时刻;写:无效。 TDRE:发送数据寄存器空标志。当发送移位寄存器从SCI数据寄存器获得1字节数据时该标志置位。当TDRE=1时,发送数据寄存器(SCIDRH/L)为空,此时能够接收一个字节的新数据。通过读取SCISR1寄存器然后写数据至SCIDRL寄存器可以清
14、除TDRE位。 1表示1字节数据传输到发送移位寄存器,发送数据寄存器空; 0表示没有数据传输到发送移位寄存器。 TC:发送完成标志。当有发送正在进行时,当报头或者中止符加载时,TC清零;当TDRE标志被置位且没有数据、报头、中止字符正在发送时,TC置位。此时TXD输出信号变成空闲(逻辑1)。TC置位后,通过读取SCISR1寄存器,再写数据至SCIDRL寄存器清除TC位。当数据、报头、中止字符进入队列并准备发送时,TC被自动清除。 1表示没有发送正在进行; 0表示发送正在进行。 RDRF:接收数据寄存器满标志。当接收移位寄存器中的数据传送到SCI数据寄存器时,RDRF置位。RDRF置位后,通过读
15、取SCISR1寄存器,再读取SCIDRL寄存器数据清除RDRF位。 1表示SCI数据寄存器中接收的数据可用; 0表示SCI数据寄存器中的数据不可用。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,10.3.4 SCI状态寄存器1,IDLE:空闲线标志。当10个连续的逻辑1(M=0)或者11个连续的逻辑1(M=1)出现在接收器输入端时,IDLE置位。一旦IDLE标志被清除,在空闲条件下能够置位IDLE标志之前,必须接收一个有效帧再次置位RDRF标志。IDLE置位后,通过读取SCISR1寄存器之后读取SCIDRL寄存器数据清除IDLE位。 1表示接收器输入空闲; 0表示IDLE标志上
16、一次被清除后,接收器未接收到有效数据。 注意:当接收器唤醒位(RWU)置位时,线路空闲条件下不会置位IDLE标志。 OR:溢出标志。当接收移位寄存器接收下一帧数据之前,如果软件读取SCI寄存器失败,OR置位。对于第二帧而言,接收到停止位后立即置位OR。移位寄存器中的数据丢失,但是SCI数据寄存器中的已有数据不受影响。OR置位后,通过读取SCISR1寄存器之后读取SCIDRL寄存器数据清除OR位。 1表示溢出发生; 0表示没有溢出发生。 注意:当RDRF标志清除时,读取OR可能返回1。这可能会发生在以下事件中: 接收第一帧数据后,读取状态寄存器SCISR1(返回RDRF=1和OR=0); 没有读
17、取数据寄存器中的第一帧就接收第二帧(第二帧数据没有收到,OR=1); 读取数据寄存器SCIDRL(返回第一帧并清除RDRF标志); 读取状态寄存器SCISR1(返回RDRF=0和OR=1)。 事件和事件同时发生或者在事件之后发生。当这种情况发生时,如果后来的帧要被接收,事件后的一个虚拟SCIDRL读操作可以清除OR标志。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,10.3.4 SCI状态寄存器1,NF:噪声标志。当SCI检测到接收器输入有噪声时,NF置位。NF置位和RDFR标志同时,但在溢出时NF不置位。NF置位后,通过读取SCISR1寄存器之后读取SCIDRL寄存器数据清除
18、NF位。 1表示检测到噪声; 0表示没有检测到噪声。 FE:帧错误标志。当接收到的停止位是0时,FE置位。FE置位和RDFR标志同时,但在溢出时FE不置位。FE置位后,通过读取SCISR1寄存器之后读取SCIDRL寄存器数据清除FE位。 1表示帧错误发生; 0表示没有帧错误发生。 PF:奇偶校验错误标志。当奇偶校验使能位(PE)置位且接收到数据的奇偶校验位和定义的奇偶校验类型不符时,PF置位。PF置位和RDFR标志同时,但在溢出时PF不置位。PF置位后,通过读取SCISR1寄存器之后读取SCIDRL寄存器数据清除PF位。 1表示奇偶校验错误发生; 0表示没有奇偶校验错误发生。,基于HCS12的
19、嵌入式系统设计,10.3 SCI模块寄存器,10.3.5 SCI状态寄存器2,SCI状态寄存器2(SCI Status Register 2,SCISR2)如图10.8所示。,读:任何时刻;写:任何时刻,写入SCI状态寄存器2数据,除BK13和TXDIR位之外的其他位数据无效。 BK13:中止符长度,该位决定中止符的长度是10位或11位,还是13位或14位。 帧错误的检测不影响该位。 1表示中止符的长度是10位或11位; 0表示中止符的长度是13位或14位。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,10.3.5 SCI状态寄存器2,TXDIR:单线模式下的发送器引脚数据方向
20、,该位决定了在单线模式下,TXD引脚被用做输入还是输出,仅在单线模式下有效。 1表示单线模式下TXD引脚被用做输出; 0表示单线模式下TXD引脚被用做输入。 RAF:接收器有效标志位。当接收器在起始位的RT1时刻检测到逻辑0时,RAF置位。当接收器检测到空闲字符时,RAF被清除。 1表示没有接收正在进行; 0表示正在进行接收。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,10.3.6 SCI数据寄存器,SCI数据寄存器(SCI Data Registers,SCIDRH/L)如图10.9所示。,基于HCS12的嵌入式系统设计,10.3 SCI模块寄存器,10.3.6 SCI数据
21、寄存器,读:任何时刻,读取SCI接收数据寄存器数据;写:任何时刻,写入SCI发送数据寄存器数据,写入操作对R8位无效。 R8:接收第9位。当SCI配置为9位数据格式时(M=1),R8是接收到数据的第9位。 T8:发送第9位。当SCI配置为9位数据格式时(M=1),T8是发送数据的第9位。 R7R0:接收数据的低8位。 T7T0:发送数据的低8位。 注意:如果T8的数值和之前发送的一样,T8就不必重新写入。同样的值被发送直到T8被重新写入不同的值。在8位数据格式中,只有SCI数据寄存器低字节(SCIDRL)需要被访问。在9位数据格式中,用8位写指令时,要先写SCIDRH,再写SCIDRL。,基于HCS12的嵌入式系统设计,10.4 SCI模块基础应用实例,实例一:本实例实现SCI模块的数据发送,利用SCI0模块连续发送099,共100个数据。 程序清单:,基于HCS12的嵌入式系统设计,10.4 SCI模块基础
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省宜昌市外国语初级中学2025-2026学年初三下学期英语试题9月开学考试卷含解析
- 湖南省长沙广益中学2026届中考一模语文试题分类汇编:集合与常用逻辑用语含解析
- 江苏省东海县2026年初三月考(5)语文试题含解析
- 广西南宁市江南区三十四中2026届初三下学期开学考试语文试题文试题含解析
- 浙江省温州市瑞安市2025-2026学年初三下学期5月质量检查英语试题试卷含解析
- 浙江省杭州萧山回澜重点中学2026届初三下学期第三次月考语文试题(理A)试题含解析
- 湖北省襄阳市南漳县市级名校2026届初三3月教学情况调研(一)英语试题含解析
- (正式版)DB37∕T 1507-2010 《绿色食品 塑料大棚西瓜生产技术规程》
- 托管班合作合同
- 病房常见应急预案(3篇)
- 工业机器人维护和保养课件
- 医院放射科竞聘演讲
- 2026版高中汉水丑生生物-第一章第一节分离定律
- 废品回收处置投标方案(3篇)
- GB/T 18268.1-2025测量、控制和实验室用的电设备电磁兼容性要求第1部分:通用要求
- 2025年辽宁中考英语试题及答案
- 【高考真题】 2025年浙江6月高考地理真题(含答案)
- GPS地壳形变监测分析-洞察及研究
- T/IESB 002-2020景观照明设施运行维护费用估算
- 蓝莓大棚买卖合同协议书
- 整体吊弦接触网基础74课件
评论
0/150
提交评论