欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    与计算机接口设计精.ppt

    • 资源ID:91046476       资源大小:7.59MB        全文页数:59页
    • 资源格式: PPT        下载积分:18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    与计算机接口设计精.ppt

    与计算机接口设计第1页,本讲稿共59页是时间上还需要额外的开销。而串行通信的突出的优点是仅仅需要数量很少的传输线,特别适合远距离传输。此外,对于PIC单片机而言,串行通信的另一个优点就是,需要占用的引脚的资源较少。PIC16F87X单片机内部集成了两个类型不同的串行通信模块,即通用同步/异步收发器USART(Universal Synchronous/Asynchronous Receiver Transmitter)模块和主控同步串行端口MSSP(Master Synchronous Serial Port)模块。前者的主要应用目标是系统之间的远距离串行通信,此项技术的应用历史比较久远。而后者的主要应用目标是系统内部近距离的串行扩展。串行通信的实现,在制式、种类、形式、规范、标准、编码、检错、纠错、帧结构、组网方式、调制方式等方面,存在着多种类型、变化、选择和解决方案。例如,Philips公司发明的I2C总线,Intel等公司提出的SMBUS总线,Freescale公司首先应用的SPI接口,美国国家半导体公司(NSC)公司首先应用的MicroWire接口,达拉斯公司推出的1-Wire总线,美国电子工业协会推荐标准RS-232、RS433、RS-485接口,Intel等公司提出的USB总线,苹果公司提出的IEEE-1394总线,博世公司提出的CAN总线,现场总线基金推出的FF总线,Motorola公司联合东芝公司共同开发的LONworks总线等,都是用来实现与串行通信功能相关的技术和规范。第2页,本讲稿共59页8.1 标准串行接口RS-232C接续 串行通信是指单片机或者计算机和外设之间使用一根数据信号线,数据串行通信是指单片机或者计算机和外设之间使用一根数据信号线,数据在一个数据信号线上一位一位地进行传输,每一位数据都占据一个固定地时在一个数据信号线上一位一位地进行传输,每一位数据都占据一个固定地时间长度,串行通信的特点是使用的数据线少,其传输的速度比较慢。串行通间长度,串行通信的特点是使用的数据线少,其传输的速度比较慢。串行通信的优点也正体现在远程通信和上下位机通信中,随着新的串行数据协议的信的优点也正体现在远程通信和上下位机通信中,随着新的串行数据协议的诞生,速度和距离都有了较大提高。诞生,速度和距离都有了较大提高。一个完整的串行通信系统如图一个完整的串行通信系统如图8.18.1所示,该通信系统包括数据终端设备(所示,该通信系统包括数据终端设备(DTEDTE)和数据通信设备(和数据通信设备(DCEDCE)。)。1 1数据通信设备数据通信设备DTEDTE:DTEDTE是产生二进制信号的数据源,也是接收信息的目的,是产生二进制信号的数据源,也是接收信息的目的,是由数据发送器或接收器或兼具两者组成的设备,它可以是一台计算机。是由数据发送器或接收器或兼具两者组成的设备,它可以是一台计算机。2 2数据通信设备数据通信设备DCEDCE:DCEDCE是一个使传输信号符合线路要求,或者是一个使传输信号符合线路要求,或者满足满足DTEDTE要求的信号匹配器,它是提供数据终端设备与通信线路之间通信的建立、要求的信号匹配器,它是提供数据终端设备与通信线路之间通信的建立、维持和终止连接等功能的设备,同时执行信号变换与编码,它可以是一个维持和终止连接等功能的设备,同时执行信号变换与编码,它可以是一个MODEMMODEM。第3页,本讲稿共59页图8.1 串行通信系统 在数据通信、计算机网络以及分布式工业控制系统中,经常采用串行通信来交换数据和信息。1969年,美国电子工业协会(EIA)公布了RS-232C作为串行通信接口的电气标准,该标准定义了数据终端设备(DTE)和数据通信设备(DCE)间按位串行传输的接口信息,合理安排了接口的电气信号和机械要求,在世界范围内得到了广泛的应用。但它采用单端驱动非差分接收电路,因而存在着传输距离不太远(最大传输距离15m)和传送速率不太高(最大位速率为20Kb/s)的问题。远距离串行通信必须使用Modem,增加了成本。在分布式控制系统和工业局部网络中,传输距离常介于近距离(20m)和远距离(2km)之间的情况,这时RS-232C(25脚连接器)不能采用,用Modem又不经济,因而需要制定新的串行通信接口标准。第4页,本讲稿共59页 1977年EIA制定了RS-449。它除了保留与RS-232C兼容的特点外,还在提高传输速率,增加传输距离及改进电气特性等方面作了很大努力,并增加了10个控制信号。与RS-449同时推出的还有RS-422和RS-423,它们是RS-449的标准子集。另外,还有RS-485,它是RS-422的变形。RS-422、RS-423是全双工的,而RS-485是半双工的。RS-422标准规定采用平衡驱动差分接收电路,提高了数据传输速率(最大位速率为10Mb/s),增加了传输距离(最大传输距离1200m)。RS-423标准规定采用单端驱动差分接收电路,其电气性能与RS-232C几乎相同,并设计成可连接RS-232C和RS-422。它一端可与RS-422连接,另一端则可与RS-232C连接,提供了一种从旧技术到新技术过渡的手段。同时又提高位速率(最大为300Kb/s)和传输距离(最大为600m)。RS-485为半双工的,当用于多站互连时可节省信号线,便于高速、远距离传送。许多智能仪器设备均配有RS-485总线接口,将它们联网也十分方便。串行通信由于接线少、成本低,在数据采集和控制系统中得到了广泛的应用,产品也多种多样。8.1.1 RS-232C接口规格接口规格 RS-232C其中RS是Recommended Standard的缩写,代表标准,232是标识符,C代表RS-232的最新一次修改(1969年),在这之前,有过RS-232A、RS-232B标准,它规定连接电缆和机械、电气特性、信号功能及传送过程。现在,计算机上的串行通信端口(RS-232)是标准配置端口,已经得到广泛应用,目前计算机上一般都12个标准RS-232C串口,即通道COM1和COM2。第5页,本讲稿共59页1RS-232C标准的电气特性 EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了明确规定。在TXD和RXD引脚上电平定义:逻辑1(MARK)-3V-15V;逻辑0(SPACE)315V 在RTS、CTS、DSR、DTR 和DCD等控制线上电平定义:信号有效(接通,ON状态,正电压)+3V+15V;信号无效(断开,OFF状态,负电压)=-3V-15V 对于数据(信息码):逻辑“1”的传输的电平为-3V-15V,逻辑“0”传输的电平为+3V+15V;对于控制信号;接通状态(ON)即信号有效的电平为+3V+15V,断开状态(OFF)即信号无效的电平为-3V-15V,也就是当传输电平的绝对值大于3V 时,电路可以有效地检查出来;而介于-3+3V之间的电压即处于模糊区电位,此部分电压将使得计算机无法准确判断传输信号的意义,可能会得到0,也可能会得到1,如此得到的结果是不可信的,在通信时候体现的是会出现大量误码,造成通信失败。因此,实际工作时,应保证传输的电平在(315)V 之间。目前,大部分计算机的RS-232C通信接口都使用了DB9连接器,主板的接口连接器有9根针输出,也有些比较旧的计算机使用DB25连接器输出,表8.1为RS-232C串口引脚定义表。第6页,本讲稿共59页表8.1 RS-232C串口引脚定义表第7页,本讲稿共59页 RS-232C 规定的逻辑电平与一般微处理器、单片机的逻辑电平是不同的,例如RS-232的逻辑“1”是以-3-15V来表示的,而单片机的逻辑“1”是以+5V来表示的,两者完全不同。因此,单片机系统要和电脑的RS-232接口进行通信,就必须把单片机的信号电平(TTL电平)转换成计算机的RS-232C电平,或者把计算机的RS-232C电平转换成单片机的TTL电平,通信时必须对两种电平进行转换。实现这种转换的方法可以使用分立元件,也可以使用专用RS-232电平转换芯片。目前较为广泛地使用专用电平转换芯片,如MC1488、MC1489、MAX232等电平转换芯片来实现EIA到TTL电平的转换。下面介绍MAXIM公司的单电源电平转换芯片MAX232及接口电路。如图8.2中所示,MAX232是单电源双RS-232发送/接收芯片,采用单电源(+5V)供电,外接只需4个电容,便可以构成标准的RS-232通信接口,硬件接口简单,所以被广泛采用。图8.2 MAX232实物及芯片引脚排列第8页,本讲稿共59页8.1.2 接续方法 单片机和计算机RS-232接口电路如图8.3所示,图中的C1、C2、C3、C4是电荷泵升压及电压反转部分电路,产生V+、V-电源供EIA电平转换使用,C5是VCC对地去耦电容,其值为0.1UF,电容C1C5安装时必须尽量靠近MAX232芯片引脚,以提高抗干扰能力。图8.3 采用MAX232CPE 芯片的PC机与单片机串行通信接口电路第9页,本讲稿共59页 图8.4是一个采用分立元件构成的简易RS-232串行通信接口电路,使用三极管进行电平转换,由于简单的通信,对于通信稳定性要求较高的应用,不建议使用分立元件,因为分立元件电路的稳定性,误码率较高,不能完全满足RS-232C的全部技术指标。分立元件组成的电路优点是成本低廉,部分网站上介绍的产品就分立元件构成。图8.4 采用分立元件的简易RS-232C通信接口电路第10页,本讲稿共59页8.1.3 PIC串行通信设计实例串行通信设计实例 当 PIC单片机不具备片上硬件 USART或者USART不够用时,可以利用软件模拟实现异步串行通信。Microchip公司推出的 PIC系列单片机PIC16C711具有运行速度快、低功耗、价格低、体积小等优点。因为,不具备硬件 USART时需要用一般 I/O口来模拟串行口。1串行接口硬件电路串行接口硬件电路 如图 8.5所示,RB0为接收脚,RB5为发送脚。RB0除作为一般 I/O引脚外,还可以作为外部中断输入引脚,引起中断的方式分为上跳沿和下跳沿两种方式。设置下跳沿引起中断。当起始位到来时,RB0上出现下跳沿,引起中断,如果不是干扰信号则开始接收数据。RS-485标准的特点是抗干扰能力强,传输速率高、传送距离远。它规定了双端(平衡式)电气接口特性。当单片机与具有 RS-485接口的PC机通信时,需要进行信号形式的转换。从单片机发送到 PC机的信号首先转换成平衡信号,再送往 PC机。从PC机发送到单片机的信号先转换成非平衡信号,再输入单片机。信号形式的转换工作由RS-485接口芯片 SN75176完成。SN75176差分总线收发器工作在半双工方式,当工作于发送方式时,发送使能引脚DE为高电平,接收使能引脚RE也为高电平。当工作于接收方式时,发送使能引脚 DE为低电平,接收使能引脚RE也为低电平。这样,可以将 DE与RE连接在一起,由 RB6引脚输出控制信号,控制 SN75176的发送和接收使能。为了减少线路上信号的反射,需要匹配线路的特性阻抗。由于通信载体是双绞线,它的特性阻抗为120左右,所以线路设计时,在 RS-485网络传输线的始端和末端各应接1只 120的匹配电阻,R1为单片机一侧的匹配电阻。由于 RS485芯片的特性,接收器的灵敏度为 200mV,即差分输入端 VA-VB200mV时,输出逻辑“1”;VA-VB-200 mV时,输出逻辑“0”。当VA-VB200 mV时,输出不确定。因此,当 A、B无信号输入时,可能造成接收引脚R上出现低电平,这会误认为通信帧起始位到来而引起工作不正常。第11页,本讲稿共59页为了避免这种情况发生,可以人工的让 A端电位高于 B端电位,使 R引脚在RS485总线不发送期间呈现唯一的高电平,单片机不会被误中断而接收到乱字符。通过在 A、B接上拉、下拉电阻 R3、R2可解决这个问题。图 8.5PIC16C711与 PC机之间的接口电路2单片机通信程序框图单片机通信程序框图 PIC单片机与 PC机之间的通信方式为半双工方式。一帧数据包括一位起始位、8位数据位、一位停止位和无奇偶校验位。设发送和接收数据的波特率为9600 b/s,则每一位占用的时间td为19600s,约为104s。单片机晶振频率为 4MHz,单片机执行一条指令耗费时间 1s。单片机接收数据程序框图 PIC16C711单片机的 RB0引脚具备外部引脚跳变沿中断功能,向 RB0引脚送一个上跳沿或下跳沿信号,则 INTCON寄存器的外部引脚跳变沿中断标志位 INTF被置 1。如果总中断和外部引脚跳变沿中断都使能,并且此时单片机没有执行其他中断服务子程序,程序进入 INT中断服务子程序。根据异步串行通信的特点,通信线路空闲时单片机接收的是第12页,本讲稿共59页高电平,起始位到来时单片机接收到低电平,因此空闲位和起始位之间是一个下跳沿。单片机接收到下跳沿即起始位后,马上进入中断服务子程序,准备接收一帧数据。因此在主程序中设置由下跳沿引起外部引脚跳变沿中断。下面将主要分析接收子程序即中断服务子程序。单片机接收数据程序框图如图8.6所示。进入中断服务子程序后,首先保护中断现场,然后检测起始位是否是“真的”。由于可能存在的各种干扰,PIC单片机有可能接收到的干扰信号正好是一个下跳沿,而实际上此时根本没有数据到来,从而造成误接收数据。因此检测起始位的真实性是有必要的。采取的方法是在52s(起始位的中点)后,检测一次 RB0上的信号。程序框图中是延时47s后检测 RB0上的信号,原因是保护中断现场的几条指令要耗费几个s。如果是低电平,则起始位是“真的”,否则为干扰信号,单片机清 INTF标志位,然后退出中断服务子程序,回到主程序。若起始位是“真的”,则准备接收数据。设计规定数据位为 8位,故首先设置接收计数器R_CNT内容为 8。然后将 STATUS寄存器中的 C位清零,并右移接收数据寄存器RCV_R。C的内容即 0移入 RCV_R最高位,接下来接收数据位。为尽量保证数据的准确性,应该在每位数据的中点检测该位数据。因此,检测第一位数据的时刻距离检测起始位的时刻应该是一位数据所占的时间即 104s,此后的每一位数据检测时刻之间也是如此。此时又要用到延时程序。因为每两次检测时刻之间除了延时之外,指令(C清零、右移等指令)还要占用时间,这些指令占用 56s,因此,为了尽量保证在每一位的中心位置检测数据,延时时间定为 98s。如果检测得到的数据位为1,则置 RCV_R最高位为 1。如果数据位为 0,则不必改变最高位,因为 C为 0且已经移入 RCV_R的最高位。然后,将接收计数器内容减 1。8位数据接收完毕后,清 INTF标志。最后,退出中断服务子程序。至此,8位数据接收全部存放于 RCV_R中。第13页,本讲稿共59页 单片机发送数据程序框图 用RB5引脚作为发送引脚,单片机发送数据程序框图如图8.7所示。当有数据要从单片机发往PC机时,单片机调用发送子程序。在发送子程序中,首先设置发送计数器内容为 8,然后发送起始位,起始位应持续 104s。因此要调用延时子程序,延时子程序执行完后,RB5上的信号并未立刻变成第一位数据的值,这是因为还要执行几条指令,如右移 TRS_R、置位等 RB5上的信号才会变化。假设延时 104s,那么加上几条指令的执行时间,起始位就比 104s宽了。因此,延时子程序少于 104s,根据具体的程序定为 97s。然后,右移发送数据寄存器 TRS_R,将其最低位即要发送的数据位移入 C中,再根据 C中的内容将RB5清零或置 1,然后将发送计数器内容减 1,并判断其是否为 0。若为 1,则说明未发送完毕,继续发送;否则,发送停止位。最后,退出发送子程序。第14页,本讲稿共59页图 8.6单片机接收数据程序框图 图 8.7单片机发送数据程序框图第15页,本讲稿共59页8.2 PIC的USART应用 8.2.1 PIC16F8778.2.1 PIC16F877非同步通信功能(非同步通信功能(USARTUSART接口)接口)通用同步通用同步/异步接收发送模块(异步接收发送模块(USARTUSART)是两个串行通信接口之一,)是两个串行通信接口之一,USARTUSART又称为又称为SCISCI(Serial Communication InterfaceSerial Communication Interface)。)。USARTUSART可以设置为全双工可以设置为全双工异步串行通信系统,这种方式可以与个人计算机异步串行通信系统,这种方式可以与个人计算机PCPC或串行接口或串行接口CRTCRT等外围设备等外围设备进行串行通信。也可以设置为半双工异步串行通信系统,与串行接口的进行串行通信。也可以设置为半双工异步串行通信系统,与串行接口的A/DA/D或或D/AD/A集成电路、串行集成电路、串行EEPROMEEPROM等器件连接。等器件连接。USARTUSART是二线制串行通信接口,它可以被定义如下三种工作方式:全双工异步方是二线制串行通信接口,它可以被定义如下三种工作方式:全双工异步方式、半双工同步主控方式、半双工同步从动方式。为了把式、半双工同步主控方式、半双工同步从动方式。为了把RC6RC6和和RC7RC7分别设置成串行分别设置成串行通信接口的发送通信接口的发送/时钟(时钟(TX/CKTX/CK)线和接收)线和接收/数据(数据(TX/DTTX/DT)线,必须首先把)线,必须首先把SPENSPEN位(位(TCSTATTCSTAT的的RD7RD7)和方向寄存器)和方向寄存器TRISCTRISC的的D7D7:D6D6置置1 1。USARTUSART功能模块含有两个功能模块含有两个8 8位可读位可读/写的状态写的状态/控制寄存器,它们是发送状态控制寄存器,它们是发送状态/控制寄控制寄存器存器TXSTATXSTA和接收状态和接收状态/控制寄存器。控制寄存器。第16页,本讲稿共59页 USART带有一个8位波特率发生器BRG(Baud Rato Generator),BRG支持USART的同步和异步工作方式。用SPBRG寄存器控制一个独立的8位定时器的周期。在异步方式下,发送状态/控制寄存器TXSTA的BRGH位(即D2)也被用来控制波特率(在同步方式下忽略BRGH位)。向波特率寄存器SPBRG写入一个新的初值时,都会使BRG定时器复位清零,由此可以保证BRG不需要等到定时器溢出后就可以输出新的波特率。对USART方式进行初始化的程序如下:BSF STATUS,RP0;将指针指向数据存储器的第1页 MOVLW 0 x19 MOVWF SPBRG;设置波特率为9600 BCF STATUS,RP0;将指针指向数据存储器的第0页 CLRF RCSTA;将接收控制和状态寄存器清零 BSF RCSTA,SPEN;串口允许 CLRF PIR1;清除中断标志 BSF STATUS,RP0;将指针指向数据存储器的第1页 CLRF TXSTA;将发送控制和状态寄存器清零 BSF TXSTA,BRGH;设置为异步、高速波特率 BSF TXSTA,TXEN;允许发送 BCF STATUS,RP0;将指针指向数据存储器的第0页 BSF RCSTA,CREN;允许接收 初始化完成后,即可发送或接收数据。在发送或接收数据时,通过查询发送/接收中断标志位即可判断是否发送完一个数据/接收到一个数据。送/接收中断标地不需要也不有用软件复位。第17页,本讲稿共59页 在异步串行发送的过程中,只要TXREG寄存器为空,中断标志TXIF就置位。因此,TXIF为1并不是发送完毕的标志,但仍可以用TXIF标志来判断。因此当TXREG为空时,将数据送入后,数据会保留在TXREG寄存器中,直到前一个数据从发送移位寄存器中移出,即前一个数据发送。8.2.2 串行接口芯片串行接口芯片8251A 8251的管脚和内部结构如图8.8所示。1同同CPU的连接信号的连接信号 RESET:当这个引脚上出现一个6倍时钟宽的高电平信号时,芯片被复位,使芯片 处于空闲状态。这个空闲状态将一直保持到由编程确定了新状态才结束。在系统中 使用此芯片时,总是把复位端与系统的复位线相连,使它受到加电自动复位和人工 复位的控制。CLK:是为芯片内有关电路工作提供时钟的输入端。这个时钟的频率与数据速率并 无直接关系,但是,为了电路工作可靠,在同步方式下最好使这个频率比数据速率 大30倍以 上。在异步方式下,大4.5倍。、:是CPU对8251A中的寄存器读、写时的控制信号输入端。C/:是一个决定CPU对芯片读写内容的控制输入端。如果输入为高电平,CPU 对芯片就是写控制字或读状态字;反之,读写的内容就是数据。通常,将该端与地址 线的最低位相接。于是,8251A就占有两个端口地址,偶地址为数据口地址,而奇 地址为控制口地址。:片选输入端。该引脚输入低电平时,芯片可以与CPU之间传输数据;反之,芯片的8个数据引脚处于悬空状态。第18页,本讲稿共59页图图8.8 8251A 芯片引脚芯片引脚 D0D7:双向8位数据线,同片内数据总线缓冲器相连,CPU通过D0D7向8251A 写数据和控制字,以及读数据和状态字。2MODEM控制信号控制信号 8251A还提供了四个与MODEM相连的控制信号,信号的含义与RS232C标准相同。(Data Terminal Ready):数据终端准备好(输出,低电平有效)。这是 一个通用的输出信号,可由命令字的位1置“1”,而变为有效,用以表示CPU准备就绪。第19页,本讲稿共59页 (Data Terminal Ready):数据终端准备好(输出,低电平有效)。这是 一个通用的输出信号,可由命令字的位1置“1”,而变为有效,用以表示CPU准备就绪。(Request To Send):请求发送(输出,低电平有效)。此信号用于通知 调制器,CPU已准备好发送。它可由命令字的位5置“1”而变为有效(低电平有效)。(Clear To Send):清除发送信号(输入,低电平有效)。这是调制解凋器 或其它外设送到8251A中的调制解调器控制器的信号。当其有效时,表示允许USART 发送数据。上述四个信号在使用时应按规定引脚连接。信号在传输过程中,由MODEM输入后存放在8251A的状态字节中,芯片内对此并不作处理,只有当CPU读状态后才可能给出响应。CTS也是从MODEM送来的信号,如果为低电平。且8251A中已经设置了允许发送命令,芯片就可以向MODEM送出串行数据。如果在数据传送中,出现了某个条件不满足 的情况,那么,在传输完当前的字节后,即行停止。和都是由CPU写命令时给8251A设置的,为使两个引脚有效(低电平),对寄存器中这两位应写入“1”。3发送器有关信号发送器有关信号 TxD:发送数据。发送缓冲器从数据总线上接收数据,转换成串行数据,并按要求 插入附加字符或附加位后,在时钟 的下降沿按位从TxD上发送出去。xRDY:发送器准备好信号。如果该信号有效,就表示发送缓冲器已空,CPU可以向 芯片送入新的数据。这个信号的状态要受到命令字中TxEN位(允许发送)的控制。如果 把TxRDY信号作为向CPU请求数据的中断信号,TxEN位就可以看作是中断控 制的屏蔽 位。在8251A的状态字中有一位TxRDY,CPU也可以用查询的方式判断 是否可以送数据。第20页,本讲稿共59页 TxE:发送缓冲器空标志。不管发送时是处于等待还是发送状态,只要发送缓冲器 中没有再要发送的字符,这个标志就变高。当从CPU送入一个数据字符时,该位标 志就被复位。这个标志可以用来表示一段数据传输的结束。如果是半双工工作,这个标志可以用作从发到收的转换。同步工作时,如果临时出现TxE,就意味着数据 发送出现空缺,芯片会自动插补同步字符。:输人控制发送器数据速率的时钟。每个数据的移位输出,是在TxC的下降 沿实现的。异步方式下,的频率可以是数据速率的1、16或64倍。同步方式时,的频率与数据速率相同。4接收器有关信号接收器有关信号 RxD:接收数据。用来接收外设送来的串行数据,按规定检查有关字符或有关位后,经串一并转换送入数据总线缓冲器,RxD在时钟上升沿采样输入。RxRDY:接收器准备好标志。如果该位为高电乎,接收缓冲器中就已经有组装好了 的一个数据字符,可通知CPU将它取走。与TxRDY相似,RxRDY也可用作中断请 求信号,也可以通过读状态字了解接收器状态。一旦CPU读走这个数据字符,RxRDY 被复位。要是CPU没有及时取走数据,新接收数据将覆盖数据,使一个数据丢失,出现溢出错误,并反映在状态字中。:接收时钟输入端。当时钟处在上升沿时,才可能把数据取样输入。时钟速率 的规定与 相同。实际上,和 往往连接在一起,用同一个时钟源。第21页,本讲稿共59页 SYNDET/BRKDET:同步和间断检测。芯片在同步方式工作时,用作同步检测端;异步时则用作间断检测输出。芯片可以由编程确定是内同步还是外同步。如果是内 同步,就由 芯片内电路搜索同步字符,一旦找到,就由该端输出一个高电平。如果是外同步,当片外检测电路找到同步字符后,就可以从该引脚输入一个高电平 信号,使8251A正式开始接收。一旦开始正常接收数据,同步检测端恢复低电平输 出。异步方式工作中,通常在线路上无数据时以高电平表示。在8251A中也可以由程序控制,使无数据的间断时间内线路上呈现低电平,即发送一个字符长度的全“0”码。接收端具有对这种间断码检测的能力,如果检测到间断码,将从该端输出一个高电平。为了避免接收器对尚未正式开始工作的线路低电平误认为间断状态,8251A在复位后总是要在检测到一次高电平输入后,才开始对间断状态的检测。对于8251A它有三个字,一个方式指令字、命令指令字、状态字,其中方式指令字和命令字都是要写入到控制口里的,而状态字是从控制口读出来的,如果读和写能够区别,也就是状态字和指令字这两个可以区别,但指示字里是方式指示字还是命令指示字,这个关系必须要注意,它们的关系应是在开机时、在复位时以及完成后,先给的字认为是方式指示字。给完了方式指示字后再给的自动认为是命令指令字,就不会把后面给的当作方式字进行保存,而当作命令控制操作。8.2.3 USART应用通信编程实例应用通信编程实例1概述概述 要在PIC16F877与 PC机间进行数据交换,这里可应用USART来实现。在编写程序时首先要设置好USART异步通讯模块工作模式及相关寄存器,PIC16F877的USART与其他具有USART的 PIC单片机一样,可以被设置成为与 PC机进行全双工异步通讯,第22页,本讲稿共59页它是利用PORTC口的RC6和RC7两个引脚作为通讯的2线制串行通讯接口。为了把PORTC口的RC6和 RC7两个引脚分别设置成串行通讯接口的发送(TX)脚和接收(RX)脚,必须要把USART的接收状态和控制寄存器 RCSTA 的 bit7(SPEN)位和TRISC寄存器的bit7置“1”,把TRISC寄存器的bit6置“0”。为了使USART分别工作于接收或发送状态,就必须设置相应的状态寄存器和控制寄存器。在设置接收器时,要注意接收脚对接收信号的采样。接收脚 RX上的数据被采样3次,通过一个三中取二逻辑检测电路来判断 RX脚上的电平是高还是低,以作为采样取值。另外,要使USART工作在异步通讯方式,就必须要设置通讯的传送、接收速率即波特率,USART的波特率设置是通过控制独立的一个8位波特率发生器BRG实现的。在异步工作方式下,串行通讯接口USART采用标准的不归0(NRZ)格式(即1位起始位、8位或9位数据位及1位停止位),最常用的数据格式是8位。PIC16F877片内的8位波特率发生器BRG可以用来驱动振荡器的时钟,产生标准的波特率频率。PIC16F877的 USART发送和接收顺序是从最低位(LSB)开始。USART发送器和接收器在功能上是完全独立的,但是它们所用的数据格式和波特率必须是相同的。波特率发生器可以根据发送状态和控制寄存器TXSTA的 bit2(BRGH)位设置产生2种不同的移位速度:对系统时钟16分频和64分频的波特率时钟,即设置该位在异步通讯模式为1时表示通讯为高速,为0时表示通讯为低速。要使USART工作于异步通讯模式,可通过对发送状态和控制寄存器TXSTA的bit4(SYNC)位设置清“0”。由上可知,PIC16F877的USART异步工作设置主要包括对以下部件的设置:波特率发生器BRG、采样电路、异步发送器、异步接收器等。这里关于PIC16F877的USART异步工作有两点需要说明:一是USART硬件不支持奇偶效验,但可以用软件实现(并可作为第9位数据传输);二是在CPU处于休眠工作方式时,USART不能工作在异步通讯方式。第23页,本讲稿共59页2.USART波特率发生器波特率发生器BRG设置设置 在异步通讯方式下,波特率发生器BRG需要设置一个初值,以使BRG输出一个合适的波特率。在BRG设置时,其工作在高速还是低速是由发送状态寄存器和控制寄存器 TXSTA的 bit2(BRCH)位进行设置的。在 PIC16F877内部时钟工作模式下,设置BRG波特率寄存器 SPBRG在低速和高速初值的计算公式如下:BRGH=0(低速)异步波特率=FOSC/(64(X+1)BRGH=1(高速)波特率=FOSC/(16(X+1)其中,X为SPBRG寄存器的值(0255)。实际应用中,上式用于高速方式(BRGH=1)下计算波特率可以减小误差。另外,在向波特率寄存器SPBRG写入一个新值时会使BRG定时器复位(清零),由此就可保证波特率发生器BRG不需要等到定时器溢出后就可输出新的波特率。3.USART异步通讯的寄存器设置异步通讯的寄存器设置 实现USART异步通讯的寄存器主要有:发送状态寄存器和控制寄存器 TXSTA、接收状态和控制寄存器RCSTA、波特率发生器存器SPBRG、发送数据寄存器 TXREG、接收数据寄存器 RCREG、外围接口中断使能寄存器 PIE1 和外围接口标志寄存器 PIR1等。发送状态和控制寄存器(表8.2)表8.2 发送状态和控制寄存器第24页,本讲稿共59页 bit7 CSRC:异步方式未用。bit6 TX9:发送数据长度选择位。1=选择9位数据;0=选择8位数据。bit5 TXEN:发送允许位。1=允许发送;0=关闭发送。bit4 SYNC:USART同步/异步方式选择位。1=选择同步方式;0=选择异步方式。bit3 此位未用。bit2BRGH:高速波特率使能位。1=高速;0=低速。bit1 TRMT:发送移位寄存器(TSR)“空”标志位。1=TSR空;0=TSR满。bit0 TX9D:发送数据的第9位。接收状态和控制寄存器(表8.3)表8.3 接收状态和控制寄存器 bit7 SPEN:串行口使能位。1=允许串行口工作(把RC7和 RC6设置成串行口引脚;0=禁止止串行工作;bit6 RX9:接收数据长度选择位。1=选择接收9位数据;0=选择接收8位数据。bit5 SREN:单字节接收允许位。异步方式此位未用。Bit4 CREN:连续接收选择位。1=允许连续接收;0=禁止连续接收。第25页,本讲稿共59页 bit3ADDEN:地址匹配检测使能位。1=允许地址匹配检测,允许中断并且当RSR的D8被置1时读接收缓冲器数据;0=禁止地址匹配检测,接收所有字节,第9位被看作奇偶效验位。bit2 FERR:帧格式错标志位。1=帧格式错(读RCREG寄存器可对该位刷新并且准备接收下一个有效位);0=无帧格式错。bit1OERR:越位溢出错标志位。1=有溢出错,清CREN位可将此位清零;0=无溢出错。bit0 RX9D:接收数据的第 9 位,可作奇偶效验位。外围接口中断使能寄存器(表8.4)表8.4外围接口中断使能寄存器 bit5 RCIE:串行异步通讯接口接收中断使能位。1=允许USART接收中断;0=禁止US2ART接收中断。bit4 TXIE:串行异步通讯接口发送中断使能位。1=允许USART发送中断;0=禁止USART发送中断。其余位在异步通讯中未用。第26页,本讲稿共59页 外围接口中断标志寄存器(表8.5)表8.5 外围接口中断标志寄存器 bit5 RCIF:异步串行通讯(USART)接口接收中断标志位;1=USART接收缓冲区满;0=USART接收缓冲区空。bit4 TXIF:异步串行通讯(USART)接口发送中断标志位;1=USART发送缓冲区空;0=USART发送缓冲区满。其余位在异步通讯中未用。其他寄存器波特率 发生器存器 SPBRG的设置可以参考USR2TA波特率发生器BRG的设置内容,在设置该寄存器就是根据单片机工作时钟频率确定传输数据的波特率,只要将其初值写入SPBRG寄存器即可。发送数据寄存器 TXREG是将单片机需要发送的数据存放的寄存器,在单片机未发送之前就必须要将备发送的数据装入该寄存器。接收数据寄存器RCREG是将单片机接收到外界数据后存放数据的寄存器,在单片机确定接收的数据无误后,将其数据存放到该寄存器中。第27页,本讲稿共59页4PIC16F877单片机与单片机与PC机实现电平转换机实现电平转换 PC机的串行接口是符合 EIA RS-232C规范的外部总线标准接口。RS-232C采用的是负逻辑,即逻辑”1”:-5-15 V;逻辑”0”:+5+15 V。而CMOS电平为:逻辑“1”:4.99 V,逻辑“0”:0.01 V;TTL电平的逻辑“1”和“0”则分别为2.4 V和0.4 V。因此在用RS-232C总线进行串行通信时需外接电路实现电平转换。在发送端用驱动器将 TTL 或CMOS电平转换为RS-232C电平,在接收端用接收器将 RS-232C电平再转换为TTL 或 CMOS电平。这里选用了MAXIM公司的MAX232来作电平转换。MAX232属于MAXIM公司的通用串行接收/发送驱动器芯片。其外围电路简单,只需外接4个0.1F的电容即可,其系统硬件电路如图8.9所示。图中MAX232将PIC16F877的TX输出的TTL电平信号转换为RS-232C电平,输入到 PC机,并将 PC机输出的 RS-232C 电平转换为 TTL 电平,输出到PIC16F877单片机的RX引脚。5.PC机支持与机支持与 PIC16F877 进行数据交换的PC机可与PIC16F877可以编程实现,其实现功能如下:PC机和单片机均可发送和接收数据,由 PC机决定是发送还是接收;程序设定当 PC机键盘输入发送指令时,PC机分别显示PC机发送的数据和单片机会送的数据;当 PC机键盘输入接收指令时,PC机将接收单片机发送过来的数据,并将其数据显示。在编程中,必须要注意设置 PC机与PIC16F877单片机在进行数据交换时的数据传输格式相同。通常采用的通讯协议如下:波特率为9 600 bps,8位数据位,1位停止位,无奇偶效验位。PC机发送命令给单片机,键盘输入发送命令时,控制单片机接收数据,当PC机键盘输入接收命令时,控制单片机发送数据给PC机。PC机与PIC16F877单片机进行数据交换的程序编制流程如图8.10所示。第28页,本讲稿共59页图8.9PIC16F877与PC接口原理图源程序如下:1)初始化设置部分COUNTEQU 0X20TEMPEQU0X21J0EQU0X22第29页,本讲稿共59页ORG0NOPSTARTGOTOMAINORG0X05MAINBANKSEL TRISCMOVLWB10000000MOVWF TRISCMOVLW0X30;将RAM单元初始化MOVWF FSRBCF STATUS,RP0MOVLW0X22MOVWFCOUNTBCF PIR1,RCIFBSF PIR1,TXIFINTRAMMOVFCOUNT,0MOVWF INDFINCFCOUNT,1INCF FSR,1BTFSS FSR,7GOTO INTRAM 图8.10数据交换程序流程框图第30页,本讲稿共59页BANKSEL TXSTAMOVLW0X19M

    注意事项

    本文(与计算机接口设计精.ppt)为本站会员(石***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开