|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
- M5 \. v w( R; ?3 @3 [9 T摘要
& \' F! A8 E$ ], Z( K2 d2 S文章给出了一个简单而又实用的利用PC机打印口进行高速双向数据通信的接口,详细介绍了接口的原理和+ b( P, J" c2 N- Y. |
Windows环境下驱动程序的设计,并以该接口与AVR单片机的连接为例,介绍了它的使用方法。最后给出了各种情况下
2 N+ B/ M' p' @, K: Z通信性能的测试结果。
, D, Q. n" {+ L$ q% q0 V$ ~! ?% t: E: H( Z' w& u
关键词:数据通信 EPP接口 Windows 驱动程序 单片机
( N+ q$ y( A( `! ]5 e/ G
4 m u$ ^9 z: s( Y基于PC机的数据采集和监测控制系统往往用各种单片
9 c' a" e' G$ h: I机构成现场部件,因为它具有高可靠、低成本、小体积和抗干扰& \: K! c! Q5 N8 h7 V
性好的特点,而PC机则完成数据分析处理和构成友好易用的
3 O) d, L0 d) J% @* B人机界面。在这样的系统中,单片机与PC机间的数据通信是6 [1 _: G. }+ l1 i& H& q, Z. Y
不可缺少的一一个环节。传统系统多利用PC机的串行接口与单
; M& O( ~" `% f: A- a& K% t3 O8 Y( u片机进行数据通信,一则因为系统的数据量不大,二则因为大! Z3 N1 d% u; G
多数单片机都内置了串行接口,数据通信只需要简单的软件编% p3 X3 m& w7 T) S8 @
程即可实现。
( \) {; X. n# D( l3 k0 P; @; l随着计算机的发展,一方面传统串行接口因速率太低而逐( V( n% [2 f' ]1 n: n6 t
渐被淘汰,尤其是便携计算机,已很少再配备传统的串行接. t6 ~" S8 G; m: ?/ r
口了;另一方面,应用系统要求的数据通信量也不断增加,19 T- }4 Z, s Y% D
传统串行接口已不能满足要求。虽然新型USB串行接口的I
5 T% C3 z$ d' V出现解决了PC机传统串行接口速率低的问题,但同时也大 t" x( L. ?/ w U3 y! O/ H/ t* b9 B
大增加了通信的软硬件成本,造成用于通信的成本和复杂!
, v5 l4 H; S2 l5 ^7 n7 v性大于现场设备本身的现象。在批量较少的情况下,问题更% z% T7 J* V- l' l6 ]7 [: e; a
为突出。; S5 g0 Z* k4 N# [8 o3 e- p
在PC机提供的各种接口中,打印接口一直是必备的接
( n! @! W* N% {+ k口,而且已经从SPP方式的单向输出接口扩充为EPP和ECP& ~3 ~5 s3 O' H9 x1 ]
方式的双向接口,其通信速率也可以达到500KBytes/s到$ F2 d$ v: R& C$ A% @
2MBytes/s。利用PC机打印接口进行数据双向通信的成本和
; G( m( J! e0 ~) C复杂性又远比USB接口低,因此是单片机与PC机间数据通
! u: w) [6 j+ N: N, ?" h! S u/ x信的一个较好的替代方案。与利用传统的串行接口通信方案% D# n# Z/ d4 d9 o; P
相比,该方案涉及到硬件接口设计和Windows驱动程序设计
( ]7 s. j! B+ d0 W$ x1 R两个额外的问题,本文就这两方面的问题给出了较为详细的
! H) j+ a# Y s- P论述。; R$ O# V2 ]7 |( o" p' V) j D
* Z& C9 M; U( w; k9 T! H6 s: k
1、EPP端口通信原理: R) E" _, B" Z s
1.17 S/ m( h4 @) G) k" J4 b
EPP端口的引脚和定义" g! L" O2 _6 _2 ^5 p/ C
用于进行数据双向通信的EPP端口相关的引脚和定义如1 @% Y7 ]( {( z& q: ?$ U9 }3 P
表1所示。
) y+ z/ I# @6 `7 S1 X* h3 s: F7 H: Q ~2 A: e9 a# u
1.2
$ m. b/ [" y, B) g) {EPP端口的操作.: _! y9 h5 Y7 L' o, k; A
EPP端口的操作分数据和地址两种,通过对数据寄存器和
. y. h9 {/ C9 P3 q# A! z地址寄存器的读写操作可以完成数据和地址的输人和输出。在1 W1 n* @ ?- z% R; r
端口上,则以nDStrb和nAStrb分别为低加以区分。除了这两个
' [( C# v$ q f w4 o. x! @5 w- ?4 _信号外,数据和地址操作的其他信号状态完全一样。每-条对% a: Z9 Q' v- P$ O: |
数据或地址寄存器的读写指令,便会自动启动并完成一次EPP
( }9 T, I+ z8 Z: W端口的输人或输出操作。EPP端口的寄存器地址和定义如下:, |" t/ ` d7 N2 ~1 ^: l
基地址(378h):端口数据输出,锁存输人地址。
: ]- L, O: N. f+ o( C2 K I& K基地址+1 (379h):状态输人端口,bit6~bit3分别为端口引+ x3 U' Y; _. I `) \- N! @
脚10,12,13和15的状态。- e+ ~4 O: J& {6 ~
* Q; p+ R" J; ^0 J6 |& p% q
7 D3 R, D9 P4 p" O) z$ V( K% |" S9 ?3 @6 }$ G/ _# C ]
附件下载:3 q; X- I7 h1 |/ U+ i9 j4 Z
8 \; A& P4 Q: s% ]9 e1 Z: d |
|