首页 | 我要逛街 | 商品库 | 新闻动态 | 供求信息 | 特色社区 | 特色论坛 设为首页 收藏本站
商业步行街 |啤酒街 |文化街 |婚纱街 |天幕美食城 |文具街 |体育街 |科技街 |家具街 | 电子街
 
首页 > 商城文章 > 电子 > 单片机 智能设备 > PC机与单片机的通讯
PC机与单片机的通讯
作者:青岛特色街 文章来源:电子产品世界 发表日期:08-01-10 23:08:23 关注:
内容简介:
        大多数的电脑设备都具有RS-232C接口,尽管它的性能指标并非很好。在广泛的市场支持下依然常胜不衰。 原文位置
原文位置
        就使用而言,RS-232也确实有其优势:仅需3根线便可在两个数字设备之间全双工的传送数据。不过,RS-232C的控制要比使用并行通讯的打印机接口更难于控制。RS-232C使用了远较并行口更多的寄存器。这些寄存器用来实现串行数据的传送及RS-232C设备之间的握手与流量控制。本文将分别描述PC机及单片机MCS-51的串行通讯的原理及具体的软件设计。 原文位置
原文位置
         RS-232C介绍与PC硬件  原文位置
        使用查询方法的串行通讯程序设计  原文位置
        使用中断的串行通讯程序设计  原文位置
        MCS-51串行通讯  原文位置
原文位置
原文位置
        关于RS485  原文位置
        (1)RS-232C介绍与PC硬件: 原文位置
   原文位置
原文位置
        RS-232C使用-3到-25V表示数字“1”,使用3V到25V表示数字“0”,RS-232C在空闲时处于逻辑“1”状态,在开始传送时,首先产生一起始位,起始位为一个宽度的逻辑“0”,紧随其后为所要传送的数据,所要传送的数据有最低位开始依此送出,并以一个结束位标志该字节传送结束,结束位为一个宽度的逻辑“1”状态。 原文位置
   原文位置
原文位置
        PC机一般使用8250或16550作为串行通讯的控制器,使用9针或25针的接插件将串行口的信号送出。 原文位置
原文位置
        该插座的信号定义如下: 原文位置
        DB-25DB-9信号名称方向含 义 原文位置
        23TXD输出数据发送端 原文位置
        32RXD输入数据接收端 原文位置
        47RTS输出请求发送(计算机要求发送数据) 原文位置
        58CTS输入清除发送(MODEM准备接收数据) 原文位置
        66DSR输入数据设备准备就绪 原文位置
        75SG-信号地 原文位置
        81DCD输入数据载波检测 原文位置
        204DTR输出数据终端准备就绪(计算机) 原文位置
        229RI输入响铃指示 原文位置
   原文位置
以上信号在通讯过程之中可能会被全部或部分使用,最简单的通讯仅需TXD及RXD及SG即可完成,其他的握手信号可以做适当处理或直接悬空,至于是否可以悬空这视乎你的通讯软件。比如说,如果使用DOS所提供的BIOS通讯驱动程序,那么,这些握手信号则需要做如下处理,因为BIOS的通讯驱动使用了这些信号。如果使用自己编写的串行驱动程序则可以完全不使用这些握手信号(详见下面有关章节)。 原文位置
原文位置
  PC机一般使用8250或16550的作为串行通讯控制器,8250及16550的管脚排列如下: 原文位置
原文位置
  8250(16550)的寄存器如下表所示: 原文位置
      基地址读/写寄存器缩写注 释 原文位置
      0Write-发送保持寄存器(DLAB=0) 原文位置
      0Read-接收数据寄存器(DLAB=0) 原文位置
      0Read/Write-波特率低八位(DLAB=1) 原文位置
      1Read/WriteIER中断允许寄存器 原文位置
      1Read/Write-波特率高八位(DLAB=1) 原文位置
      2ReadIIR中断标识寄存器 原文位置
      2WriteFCRFIFO控制寄存器 原文位置
      3Read/WriteLCR线路控制寄存器 原文位置
      4Read/WriteMCRMODEM控制寄存器 原文位置
      5ReadLSR线路状态寄存器 原文位置
      6ReadMSRMODEM状态寄存器 原文位置
      7Read/Write-Scratch Register 原文位置
原文位置
      PC机支持1-4个串行口,即COM1-COM4,其基地址在BIOS数据区0000:0400-0000:0406中描述,对应地址分别为3F8/2F8/3E8/2E8,COM1及COM3使用PC机中断4,COM2及COM4使用中断3。 原文位置
   原文位置
原文位置
      在上表中,8250共有12个寄存器,使用了8个地址,其中部分寄存器共用一个地址,由DLAB=0/1来区分,在DLAB=1用于设定通讯所需的波特率。常用的波特率参数见下表: 原文位置
  原文位置
      速率(BPS)波特率高八位波特率低八位 原文位置
5009h00h 原文位置
30001h80h 原文位置
60000hC0h 原文位置
240000h30h 原文位置
480000h18h 原文位置
960000h0Ch 原文位置
1920000h06h 原文位置
3840000h03h 原文位置
5760000h02h 原文位置
11520000h01h 原文位置
原文位置
   原文位置
  以下几个表格为8250的寄存器的功能描述: 原文位置
  中断允许寄存器(IER): 原文位置
位注 释 原文位置
7未使用 原文位置
6未使用 原文位置
5进入低功耗模式(16750) 原文位置
4进入睡眠模式(16750) 原文位置
3允许MODEM状态中断 原文位置
2允许接收线路状态中断 原文位置
1允许发送保持器空中断 原文位置
0允许接收数据就绪中断 原文位置
原文位置
  Bit0置1将允许接收到数据时产生中断,Bit1置1时允许发送保持寄存器空时产生中断,Bit2置1将在LSR变化时产生中断,相应的Bit3置位将在MSR变化时产生中断。 原文位置
  中断识别寄存器(IIR): 原文位置
位注 释 原文位置
Bit6:7=00无FIFO 原文位置
Bit6:7=01允许FIFO,但不可用 原文位置
Bit6:7=11允许FIFO 原文位置
Bit5允许64字节FIFO(16750) 原文位置
Bit4未使用 原文位置
Bit316550超时中断 原文位置
Bit2:1=00MODEM状态中断(CTS/RI/DTR/DCD) 原文位置
Bit2:1=01发送保持寄存器空中断 原文位置
Bit2:1=10接收数据就绪中断 原文位置
Bit2:1=11接收线路状态中断 原文位置
Bit0=0有中断产生 原文位置
Bit0=1无中断产生 原文位置
原文位置
  IIR为只读寄存器,Bit6:7用来指示FIFO的状态,均为0时则无FIFO,此时为8250或16450芯片,为01时有FIFO但不可以使用,为11时FIFO有效并可以正常工作。Bit3用来指示超时中断(16550/16750)。 原文位置
   原文位置
原文位置
      Bit0用来指示是否有中断发生,Bit1:2标识具体的中断类型,这些中断具有不同的优先级别,其中LSR中断级别最高,其次是数据就绪中断,然后是发送寄存器空中断,而MSR中断级别最低。 原文位置
  FIFO控制寄存器(FCR): 原文位置
位注 释 原文位置
Bit7:6=001Byte产生中断 原文位置
Bit7:6=014Byte产生中断 原文位置
Bit7:6=108Byte产生中断 原文位置
Bit7:6=1114Byte产生中断 原文位置
Bit5允许64字节FIFO 原文位置
Bit4未使用 原文位置
Bit3DMA模式选择 原文位置
Bit2清除发送FIFO 原文位置
Bit1清除接收FIFO 原文位置
Bit0允许FIFO 原文位置
原文位置
  FCR可写但不可以读,该寄存器用来控制16550或16750的FIFO寄存器。Bit0置1将允许发送/接收的FIFO工作,Bit1和Bit2置1分别用来清除接收及发送FIFO。清除接收及发送FIFO并不影响移位寄存器。Bit1:2可自行复位,因此无需使用软件对其清零。Bit6:7用来设定产生中断的级别,发送/接收中断将在发送/接收到对应字节数时产生。 原文位置
  线路控制寄存器(LCR): 原文位置
位注 释 原文位置
Bit7=1允许访问波特率因子寄存器 原文位置
Bit7=0允许访问接收/发送及中断允许寄存器 原文位置
Bit6设置间断,0-禁止,1-设置 原文位置
Bit5:3=XX0无校验 原文位置
Bit5:3=001奇校验 原文位置
Bit5:3=011偶校验 原文位置
Bit5:3=101奇偶保持为1 原文位置
Bit5:3=111奇偶保持为0 原文位置
Bit2=01位停止位 原文位置
Bit2=12位停止位(数据位6-8位),1.5位停止位(5位数据位) 原文位置
Bit1:0=005位数据位 原文位置
Bit1:0=016位数据位 原文位置
Bit1:0=107位数据位 原文位置
Bit1:0=118位数据位 原文位置
原文位置
  LCR用来设定通讯所需的一些基本参数。Bit7为1指定波特率因子寄存器有效,为0则指定发送/接收及IER有效。Bit6置1会将发送端置为0,这将会使接收端产生一个“间断”。Bit3-5用来设定是否使用奇偶校验以及奇偶校验的类型,Bit3=1时使用校验,Bit4为0则为奇校验,1为偶校验,而Bit5则强制校验为1或0,并由Bit4决定具体为0或1。Bit2用来设定停止位的长度,0表示1位停止位,为1则根据数据长度的不同使用1.5-2位停止位。Bit0:1用来设定数据长度。 原文位置
  MODEM控制寄存器(MCR): 原文位置
位注 释 原文位置
Bit7未使用 原文位置
Bit6未使用 原文位置
Bit5自动流量控制(仅16750) 原文位置
Bit4环路测试 原文位置
Bit3辅助输出2 原文位置
Bit2辅助输出1 原文位置
Bit1设置RTS 原文位置
Bit0设置DSR 原文位置
原文位置
  MCR寄存器可读可写,Bit4=1进入环路测试模式。Bit3-0用来控制对应的管脚。 原文位置
  线路状态寄存器(LSR): 原文位置
位注 释 原文位置
Bit7FIFO中接收数据错误 原文位置
Bit6发送移位寄存器空 原文位置
Bit5发送保持寄存器空 原文位置
Bit4间断 原文位置
Bit3帧格式错 原文位置
Bit2奇偶错 原文位置
Bit1超越错 原文位置
Bit0接收数据就绪 原文位置
原文位置
  LSR为只读寄存器,当发生错误时Bit7为1,Bit6为1时标示发送保持及发送移位寄存器均空,Bit5为1时标示仅发送保持寄存器空,此时,可以由软件发送下一数据。当线路状态为0时Bit4置位为1,帧格式错时Bit3置位为1,奇偶错和超越错分别将Bit2及Bit1置位为1。Bit0置位为1表示接收数据就绪。 原文位置
  MODEM状态寄存器(MSR): 原文位置
位注 释 原文位置
Bit7载波检测 原文位置
Bit6响铃指示 原文位置
Bit5DSR准备就绪 原文位置
Bit4CTS有效 原文位置
Bit3DCD已改变 原文位置
Bit2RI已改变 原文位置
Bit1DSR已改变 原文位置
Bit0CTS已改变 原文位置
原文位置
  MSR寄存器的高4位分别对应MODEM的状态线,低4位表示MODEM的状态线是否发生了变化。 原文位置
原文位置
关于我们 | 联系我们 | 人才招聘 | 网站地图
特色街 皆特色 岛城首家特色综合社区
青岛特色街-版权所有 在线客服QQ:136928360 技术支持QQ:814002980
Copyright © 2007 0532ts.com Inc All Rights Reserved.
Powered By :青岛无言阁信息科技有限公司



鲁ICP证020117号
Designed By:Web08.net