




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七周串口控制器原理与编程第一页,共46页。上周教学内容回顾大课CC2530电源的管理CC2530系统时钟的编程(难点)小课8路流水灯,会看原理图,会接线;GPIO口按键状态的获取第二页,共46页。本周教学主要内容串行通信基础知识串口控制器的原理与编程,相关SFR在控制器运行过程中所器的作用。CC2530串口控制器编程步骤第三页,共46页。教学目标了解串行通信的基础知识;掌握CC2530串口的编程步骤;重点理解相关SFR在控制器运行过程中所器的作用。第四页,共46页。
计算机与外界的信息交换称为通信。通信的基本方式可分为并行通信和串行通信两种。所谓并行通信是指数据的各位同时在多根数据线上发送或接收。串行通信是数据的各位在同一根数据线上依次逐位发送或接收。一、
串行通信基础知识了解第五页,共46页。
目前串行通信在单片机双机、多机以及单片机与PC机之间的通信等方面得到了广泛应用。图1并行通信示意图发送方接收方图2串行通信示意图了解发送方接收方8位数据同时传送8位顺次传送第六页,共46页。1.1异步通信和同步通信
计算机通信按同步方式可分为异步通信和同步通信两种基本通信方式。1.同步通信(SynchronousCommunication)
同步通信是一种连续传送数据的通信方式,一次通信传送多个字符数据,称为一帧信息。数据传输速率较高,通常可达56000bps或更高。其缺点是要求发送时钟和接收时钟保持严格同步。了解帧...流方向帧第七页,共46页。2.异步通信(AsynchronousCommunication)
在异步通信中,数据通常是以字符或字节为单位组成数据帧进行传送的。收、发端各有一套彼此独立,互不同步的通信机构,由于收发数据的帧格式相同,因此可以相互识别接收到的数据信息。了解起始位停止位数据位第八页,共46页。2.异步通信(AsynchronousCommunication)异步通信信息帧格式如图4所示。D0D1D2D3D4
D5
D6
D7
0/1
1111D7
0/1100D0D1第n字符帧空闲位停止位奇偶校验停止位5~8位数据8位数据起始位起始位奇偶校验第n-1字符帧第n+1字符帧图4异步通信帧格式8位数据
了解第九页,共46页。(1)起始位:在没有数据传送时,通信线上处于逻辑“1”状态。当发送端要发送1个字符数据时,首先发送1个逻辑“0”信号,这个低电平便是帧格式的起始位。其作用是向接收端表示发送端开始发送一帧数据。接收端检测到这个低电平后,就准备接收数据信号。(2)数据位:在起始位之后,发送端发出(或接收端接收)的是数据位,数据的位数没有严格的限制,5~8位均可。由低位到高位逐位传送。了解第十页,共46页。(3)奇偶校验位:数据位发送完(接收完)之后,可发送一位用来检验数据在传送过程中是否出错的奇偶校验位。奇偶校验是收发双方预先约定好的有限差错检验方式之一。有时也可不用奇偶校验。(4)停止位:字符帧格式的最后部分是停止位,逻辑“1”电平有效,它可占1/2位、1位或2位。停止位表示传送一帧信息的结束,也为发送下一帧信息作好准备。了解第十一页,共46页。1.2串行通信的波特率
波特率(BaudRate)是串行通信中一个重要概念,它是指传输码元/信号的速率。
比特率的定义是每秒传输二进制数的位数。
比特率
=
波特率·log2一个码元所携带的信息量了解第十二页,共46页。1.3串行通信的制式1.单工制式(Simplex)在串行通信中,数据是在两个站之间传送的。按照数据传送方向,分为三种。发送器A接收器B2.半双工制式(Halfduplex)发送接收发送接收A端B端3.全双工制式(Fullduplex)发送接收接收发送A端B端了解第十三页,共46页。1.4PC机与单片机间的串行通信串口:如RS-232C、RS-422、RS-423、RS-485等。单片机内是TTL电平2.4~5V:逻辑10~0.5V:逻辑0只适用于通信距离很短的场合,远距离传输必然会使信号衰减和畸变。PC机
其中RS-232C在异步串行通信中应用最广的总线标准,采用负逻辑标准:+3V~+15V表示逻辑0; -3V~-15V表示逻辑1标准串行总线通信接口单片机单片机单片机第十四页,共46页。图5微机9针D形串口连接器1.4.1RS-232C总线标准RS-232C实际上是串行通信的总线标准,定义了25条信号线,使用25个引脚的连接器,目前在PC机中使用9针的串口。
标准数据传送速率有:50,75,110,150,300,600,1200,2400,4800,9600,19200bit/s。工业控制的RS-232一般只使用RXD、TXD、GND三条线。2:接收3:发送5:地第十五页,共46页。1.4.2RS-232C接口电路
由于RS-232C信号电平与TTL电平不一致,必须进行信号电平转换。实现这种电平转换的电路称为RS-232C接口电路。一般有两种形式:一种是采用运算放大器、晶体管、光电隔离器等器件组成的电路来实现;另一种是采用专门集成芯片(如MC1488、MC1489、MAX232等)来实现。下面介绍由专门集成芯片MAX232构成的接口电路。1.MAX232接口电路MAX232芯片是MAXIM公司生产的具有两路接收器和驱动器的IC芯片,其内部有一个电源电压变换器,可以将输入+5V的电压变换成RS-232C输出电平所需的±12V电压。所以采用这种芯片来实现接口电路特别方便,只需单一的+5V电源即可。第十六页,共46页。C1+C1-C2+C2-CC2530GNDGNDIBM-PCTXDTXDRXDRXDT1outT1inR1inR1outGNDV+V-VCCMAX232C4C1C2C3C5+5V++++图6用MAX232实现串行通信接口电路图2.串行通信时使用MAX232进行电平转换图中C1、C2、C3、C4用于电源电压变换,提高抗干扰能力,一般取1.0μF/16V。C5的作用是对+5V电源的噪声干扰进行滤波,一般取0.1μF。发送与接收的对应关系不能接错,否则将不能正常工作。第十七页,共46页。二、CC2530串口控制器CC2530的串口控制器USART:universalsynchronous/asynchronousreceiverandtransmitter 通用同步异步收发器USART0和USART1是串行通信接口,两个USART具有同样的功能,可以分别运行于在两种模式下:
异步UART模式同步SPI模式
由于异步UART允许发送和接收的时钟不一致,容易实现,我们在讨论串口时经常采用异步UART。
第十八页,共46页。2.1串口模式异步UART模式:UART模式提供异步串行接口,在UART模式中,有2种接口选择方式:2线接口和4线接口。2线接口:RXD(接收)、TXD(发送)。4线接口:RXD、TXD、RTS和CTS(硬件流控制)4线接口复杂点,教学上讲解2线接口单片机GNDGND单片机TXDTXDRXDRXDRTSCTSCTSRTS第十九页,共46页。2.1串口模式UART模式提供全双工传送,接收器中的位同步不影响发送功能。传送一个UART字节包含1个起始位,8个数据位,1个作为可选的第9位数据或者奇偶校验位,再加上1个或者2个停止位D0D1D2D3D4
D5
D6
D7
0/1
1111D7
0/1100D0D1第n字符帧空闲位停止位奇偶校验停止位8位数据8位数据起始位起始位奇偶校验第n-1字符帧第n+1字符帧
串口异步通信帧格式8位数据第二十页,共46页。1.控制和状态寄存器UxCSR(见手册P140)2.2串口控制器的特殊功能寄存器SFR串口操作由控制和状态寄存器UxCSR以及控制寄存器UxUCR
U0CSR|=0x80;//设置UART模式U0CSR|=0x40;//允许接收第二十一页,共46页。2.控制寄存器UxUCR2.2串口控制器的特殊功能寄存器SFR第二十二页,共46页。当收发数据缓冲器UxDBUF写入数据时,该字节发送到输出引脚TXD。UxDBUF寄存器是双缓冲的。unsignedchartemp;//定义一个字符型变量temp=U0DBUF;//读出U0DBUF中的数据3.收发数据缓冲器UxDBUF2.2串口控制器的特殊功能寄存器SFR第二十三页,共46页。4.UxGCR通用控制寄存器2.2串口控制器的特殊功能寄存器SFR第二十四页,共46页。5.波特率控制寄存器UxBAUD2.2串口控制器的特殊功能寄存器SFR第二十五页,共46页。2.3波特率产生当运行UART模式时,内部的波特率发生器设置UART波特率。当运行在SPI模式时,内部的波特率发生器设置SPI主时钟频率。波特率由寄存器UxBAUD.BAUD[7:0]和UxGCR.BAUD_E[4:0]定义,该波特率用于UART传送,也用于SPI传送的串行时钟速率。F是系统时钟频率,等于16MHzRCOSC或者32MHzXOSC第二十六页,共46页。标准波特率所需的寄存器值该表适用于典型的32MHz系统时钟//设置波特率为57600U0GCR|=10;U0BAUD|=216;第二十七页,共46页。2.4系统时钟设置波特率发生器的时钟是从所选的主系统时钟源获得的,主系统时钟源可以是32MHzXOSC或16MHzRCOSC。通过CLKCONCMD.OSC位可选择主系统时钟源CLKCONCMD&=~0x40;//设置时钟晶振为32MHZwhile(!(SLEEPSTA&(1<<6)));/*等待晶振稳定*/CLKCONCMD&=~0x07;第二十八页,共46页。1.UART总线资源
数据手册P72表7-1外设I/O引脚映射
串口0同步模式:
串口0异步模式:
串口1同步模式:
串口1异步模式:
2.5UART资源第二十九页,共46页。2.相关特殊功能寄存器(1)PERCFG:设置各设备IO口位置在P0还是P1;在P0口在P1口第三十页,共46页。(2)P2DIR:当PERCFG所设定的设备IO位置冲突时,由该sfr决定位置到底归属于单个控制器。(3)PxSEL:置管脚功能为设备模式(4)UxCSR[7]:设置uart还是spi模式;以上4个sfr的正确设置可以完成我们的uart的总线初始化;第三十一页,共46页。2.6中断标志位1.UART发送
当USART收/发数据缓冲器、寄存器UxDBUF写入数据时,该字节发送到输出引脚TX。当USART发送缓冲寄存器为空时,准备接收新的发送数据时,就会由硬件置对应的中断标志位UTXxIF为1。
如果我们要通过串口0发送字符’h’,则该如下操作:voiduart0_send_byte(chartmp){//发送字符tmpwhile(UTX0IF==0);UTX0IF=0;//可以省掉吗?U0DBUF=tmp;}第三十二页,共46页。UART接收当接收缓冲区UXDBUF接收到一个新的字符时,会由硬件把中断标志位URXxIF置1。
如果我们希望从串口0获取一个字符,代码如下:charuart0_receive_byte(){//从串口接收一个字符
while(URX0IF==0);URX0IF=0;//不可以省掉returnU0DBUF;}2.6中断标志位第三十三页,共46页。1、总线初始化: PERCFGP2DIRPxSELUxCSR2、数据链路格式化(数据位、停止位、校验位、波特率) UxUCRUxGCRUxBAUD注意:设置波特率时,一定要清楚当前的时钟速度。3、读写串口收发寄存器UxDBUFUTXxIFURXxIF三、CC2530串口控制器编程步骤
第三十四页,共46页。3.1UART发送过程1.当字节传送开始时,UxCSR.ACTIVE位变为高电平,而当字节传送结束时为低电平。2.当传送接收结束时,UxCSR.TX_BYTE位设置为1。3.当USART收/发数据缓冲寄存器就绪,准备接收新的发送数据时,就产生了一个中断请求。该中断在传送开始之后立刻发生,因此,当字节正在发送时,新的字节能够装入数据缓存器。第三十五页,共46页。1.当1写入UxCSR.RE位时,数据接收开始。2.UART在输入引脚RXDx中寻找有效起始位,并且设置UxCSR.ACTIVE位为1。3.当检测出有效起始位时,收到的字节就传入到接收寄存器,UxCSR.RX_BYTE位设置为1。该操作完成时,产生接收中断。同时UxCSR.ACTIVE变为低电平。通过寄存器UxBUF提供收到的数据字节。5.当UxBUF读出时,UxCSR_BYTE位由硬件清零。3.2UART接收过程第三十六页,共46页。3.3UART硬件流控制当UxUCR.FLOW位设置为1,硬件流控制使能;硬件流控制适用于“4线接口”。
发送数据时仅在RTS线为低电平时可以发送,当可以接收数据时把CTS线置为低电平。
了解第三十七页,共46页。3.4UART特征格式如果寄存器UxUCR中的BIT9和奇偶校验位设置为1,那么奇偶校验产生且使能。奇偶校验计算出来,作为第9位来传送。在接收期间,奇偶校验位计算出来而且与收到的第9位进行比较。如果奇偶校验位出错,则UxCSR.ERR位设置为1。当读取UxCSR时,UxCSR.ERR位清除。第三十八页,共46页。voidinitUARTtest(void){
InitClock();//初始化时钟
PERCFG=0x00;//使用串口备用位置1P0口
P0SEL=0x3c;//P0用作串口
P2DIR&=~0XC0;//选择串口0优先作为串口
U0CSR|=0x80;//UART方式
U0GCR|=10;//波特率baud_e的选择
U0BAUD|=216;//波特率设为57600
UTX0IF=0;//串口0发送中断标志清零
}串口0初始化:选择工作时钟。选择串口外设备用位置。初始化I/O口。设置波特率。举例:第三十九页,共46页。串口发送字符串函数voidUartTX_Send_String(char*Data,intlen){intj;for(j=0;j<len;j++){U0DBUF=*Data++;while(UTX0IF==0);UTX0IF=0;}}了解第四十页,共46页。主函数//包含的头文件#include<ioCC2530.h>#include<string.h>#defineuintunsignedint#defineucharunsignedchar//定义控制灯的端口#defineLED1P1_0#defineLED2P1_1//函数声明voidDelay(uint);voidinitUARTtest(void);voidUartTX_Send_String(char*Data,intlen);/*延时函数*/voidDelay(uintn){ uinti; for(i=0;i<n;i++); for(i=0;i<n;i++); for(i=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妇产科实习护士工作总结
- 新生儿肺炎的临床护理
- (二模)2024~2025学年度苏锡常镇四市高三教学情况调研(二)物理试卷(含答案)
- 2025至2031年中国特制蜂蜜花生香料行业投资前景及策略咨询研究报告
- 新质生产力中国装饰
- 小班快乐阅读活动安排计划
- 失读的临床护理
- 遗传性视网膜劈裂症的临床护理
- 教学评价中的定量与定性计划
- 炎黄职业技术学院《专业日语》2023-2024学年第一学期期末试卷
- 2024新版《药品管理法》培训课件
- 更换阀门施工方案
- 安踏组织架构分析
- 钻探安全教育培训
- ···管道巡护方案
- 《课程理论-课程的基础、原理与问题》施良方
- 《工程力学》考试复习题库(含答案)
- 外墙合同范本(2篇)
- DB12∕T 947-2020 城市道路交通指引标志设置规范
- 2024年黑龙江省哈尔滨市中考数学试卷(附答案)
- 2024年上海市高考语文真题现代文二《斑鸠》简析及相关常规题型归纳
评论
0/150
提交评论