单片机与PC机之间并行通讯的一种实现方法
1 引言 在许多单片机控制系统的研制过程中,为使控制系统达到最佳的控制状态和最高的技术性能,进行控制参数的在线反复细致调整是必不可少的。以往单片机与外界进行人机对话都是通过可编程键盘显示接口器件8279实现的,但8279的加入,占用了大量的程序空间,有的将近整个程序的三分之一,另外,用小键盘进行控制参数的小幅度修正也不方便。 再者,产品开发人员对控制系统内部的计算过程十分感兴趣,如果能将每一步的计算结果传送出来进行分析检验,必将对产品研制带来益处。单片机与PC机之间的串行通讯虽然也可以实现单片机与PC机之间的数据交换,但速度较低(最高19200byte/s),无法满足实时传送大量数据的要求。为此,开发了利用双端口RAM IDT7132和PC机的并行打印机接口,实现单片机与PC机之间并行通讯的方法,该方法只需通过接口电路与PC机打印机接口相连即可使用,且通讯速度也可满足要求。 图1 IDT7132结构功能框图 2 双端口RAM IDT7132的结构和特点 IDT公司的双端口RAM时序与INTEL公司的单片机系统兼容,与现今流行的MCS—98/96系 列单片机相配合,特别适用于单片机与单片机、单片机与PC机之间大量数据的高速双向传送 。 IDT7132是一种高速2K×8CMOS双端口静态RAM,它提供了两个带有自身控制、地址和I/O 引脚的独立端口,可独立地读写存储器中的任何单元。IDT7132还带有片内硬件端口总线仲裁电路,提供了BUSY总线仲裁方式,可以允许双机同步地读或写存储器中的任何单元,同时保证数据的完整性。IDT7132结构功能框图参见图1,非竞争的读写控制如表1所示。 |
|
左或右端口 | 功能 | |||
R/![]() | ![]() | ![]() | D0-7 | |
X | H | X | Z | 掉电模式 |
L | L | X | 数据输入 | 数据写入存储器 |
H | L | L | 数据输出 | 存储器中数据输出 |
H | L | H | Z | 输出呈高阻 |
注:L=低电平,H=高电平,X=任意,Z=高阻 |
图3 硬件接口电路 3 PC机并行打印机接口各信号作用 PC机都配有一个标准的CENTRONICS并行打印机适配器接口,长期以来一直是作为打印机 接口而应用的,通过对其分析发现:它也可以作为通用I/O并行口来使用。通过对该适配器 内的三个I/O端口的控制,可实现数据和控制信号的输入、输出[1]。下面对各I/O 端口及并行口各引线功能进行说明。 PC机并行打印机适配器接口具有8位数据输入输出线,可通过读写378H I/O端口对外引线上的数据进行读写操作。对该端口进行一次写数据操作,意味着一个8位数据被写到一个8 位寄存器锁存并输出到外引线上。而对该端口进行一次读操作,读入的只是由写操作锁存在输出寄存器中的值,所以读操作只能用于打印机接口的自检。对于双机通讯来说,8位数据线只 能起到从PC机向外发送数据的作用。 PC机并行打印机适配器接口具有5根控制信号输出线,可通过写37AH I/O端口把控制信号输出到外引线上,该输出信号也经过寄存器锁存 。控制字格式如表2所示。 |
|
输出数据 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
外引线 | X | X | X | IRQEN | ![]() | INIT | ![]() | ![]() |
相关推荐技术专区 |
评论