用户定义 ’ 可以读入的输入信号线 12304*!5./= *= +9B"/>

AVR单片机与PC机打印口高速双向数据通信接口

2011-03-22 4页 pdf 232KB 22阅读

用户头像

is_285959

暂无简介

举报
AVR单片机与PC机打印口高速双向数据通信接口 !""#$!# 计算机工程与应用 引脚 %&&信号名 ’ ( ) 说明 寄存器地址和位 * +,-./0 ) 低表示写操作!高表示读操作 12304!!5./" !67 89":89; ’ !5./":5./; *" ?’+/- ’ 高电平有效!外部中断信号 1230@*!5./A ** ?,2./ ’ 低时!可进行数据通信"高时!结束操作 12304*!# 5./; *! 用户定义 ’ 可以读入的输入信号线 12304*!5./# *> 用户定义 ’ 可以读入的输入信号线 12304*!5./= *= +9B/-5 ) ...
AVR单片机与PC机打印口高速双向数据通信接口
!""#$!# 计算机与应用 引脚 %&&信号名 ’ ( ) 说明 寄存器地址和位 * +,-./0 ) 低表示写操作!高表示读操作 12304!!5./" !67 89":89; ’ < ) 双向数据 <地址线 12304= <>!5./":5./; *" ?’+/- ’ 高电平有效!外部中断信号 1230@*!5./A ** ?,2./ ’ 低时!可进行数据通信"高时!结束操作 12304*!# 5./; *! 用户定义 ’ 可以读入的输入信号线 12304*!5./# *> 用户定义 ’ 可以读入的输入信号线 12304*!5./= *= +9B/-5 ) 低电平有效!表示正进行数据读 <写操作 12304!!# 5./* *# 用户定义 ’ 可以读入的输入信号线 12304*!5./> *; +8B/-5 ) 低电平有效!表示正进行地址读 <写操作 12304!!5./> ! ! ! !基于 &C 机的数据采集和监测控制系统往往用各种单片 机构成现场部件!因为它具有高可靠$低成本$小体积和抗干扰 性好的特点!而 &C 机则完成数据分析处理和构成友好易用的 人机界面% 在这样的系统中!单片机与 &C 机间的数据通信是 不可缺少的一个环节% 传统系统多利用 &C 机的串行接口与单 片机进行数据通信!一则因为系统的数据量不大!二则因为大 多数单片机都内置了串行接口!数据通信只需要简单的软件编 程即可实现% 随着计算机的发展!一方面传统串行接口因速率太低而逐 渐被淘汰!尤其是便携计算机 !已很少再配备传统的串行接 口了 "另一方面 !应用系统要求的数据通信量也不断增加 ! 传统串行接口已不能满足要求% 虽然新型 DB1 串行接口的 出现解决了 &C 机传统串行接口速率低的问 !但同时也大 大增加了通信的软硬件成本 ! 造成用于通信的成本和复杂 性大于现场设备本身的现象% 在批量较少的情况下!问题更 为突出% 在 &C 机提供的各种接口中! 打印接口一直是必备的接 口! 而且已经从 B&& 方式的单向输出接口扩充为 %&& 和 %C& 方式的双向接口 ! 其通信速率也可以达到 #""E1F/03 ( 3 到 !G1F/03 ( 3%利用 &C 机打印接口进行数据双向通信的成本和 复杂性又远比 DB1 接口低!因此是单片机与 &C 机间数据通 信的一个较好的替代%与利用传统的串行接口通信方案 相比!该方案涉及到硬件接口和 ,.+HIJ3 驱动程序设计 两个额外的问题!本文就这两方面的问题给出了较为详细的 论述% * %&&端口通信原理 *K* %&& 端口的引脚和定义 用于进行数据双向通信的 %&& 端口相关的引脚和定义如 表 * 所示% 表 * %&& 端口相关引脚的定义和说明 注&1230表示 %&& 端口的基地址!一般为 >;LM"# 表示状态相反% *K! %&& 端口的操作 %&& 端口的操作分数据和地址两种!通过对数据寄存器和 地址寄存器的读写操作可以完成数据和地址的输入和输出%在 端口上!则以 +9B/-5 和 +8B/-5 分别为低加以区分%除了这两个 信号外!数据和地址操作的其他信号状态完全一样% 每一条对 数据或地址寄存器的读写指令!便会自动启动并完成一次 %&& 端口的输入或输出操作% %&& 端口的寄存器地址和定义如下& 基地址’>;LM(&端口数据输出!锁存输入地址% 基地址N*’>;7M(&状态输入端口!5./AO5./> 分别为端口引 脚 *"!*!!*> 和 *# 的状态% !"#单片机与 $%机打印口高速 双向数据通信接口 胡平平 王晶杰 !北京机械工业学院计算机及自动化系"北京 *"""L## 摘 要 文章给出了一个简单而又实用的利用 &C 机打印口进行高速双向数据通信的接口" 详细介绍了接口的原理和 ,.+HIJ3 环境下驱动程序的设计"并以该接口与 8PQ 单片机的连接为例"介绍了它的使用方法$最后给出了各种情况下 通信性能的测试结果$ 关键词 数据通信 %&& 接口 ,.+HIJ3 驱动程序 单片机 文章编号 *""!RL>>*R!!""#%!#R"**!R"= 文献标识码 8 中图分类号 S&>>= &’( )*+’ ,-((. /*.*0(12*3456 7525 8399:4*152*34 ;42(0<51( =(2>((4 ?"@ ,8A 54. $8 $0*42(0 $302 B: $*4+-*4+ C54+ D*4+E*( ’CITUV/0- W 8V/IT2/.I+ 90U2-/T0+/!10.X.+Y ’+3/./V/0 IZ G2[M.+0-F!10.X.+Y *"""L#( ?=F20512& 8 3.TU\0 2+H U-2[/.[2\ M.YMR3U00H 5.H.-0[/.I+2\ H2/2 [ITTV+.[2/.I+ .+/0-Z2[0 J./M &C U-.+/0- UI-/ .3 Y.]0+! ’/3 M2-HJ2-0 U-.+[.U\0 2+H H-.]0- U-IY-2TT.+Y ZI- ,.+HIJ3 3F3/0T 2-0 H.3[V330H .+ H0/2.\!’/3 2UU\.[2/.I+ 50/J00+ 8PQ BCG 2+H &C U-.+/0- UI-/ .3 Y.]0+ 2+H /M0 U0-ZI-T0+[03 .+ 30]0-2\ [2303 2-0 /03/0H 2+H H.3[V330H! G(H>30.F& H2/2 [ITTV+.[2/.I+!%&& .+/0-Z2[0!,.+HIJ3 H-.]0-!BCG 基金项目!北京市科委资助科技项目’编号&EG!"">**!>!*>A( ""# 计算机工程与应用 !""#$!# ! ! ! !基地址%!!&’()"#控制输入 *输出端口!该端口 +,-. 必须 置 / 才能使外部中断信号线 010-2 的上升沿产生打印端口 中断"$ 基地址%&!&’3)"#地址寄存器$ 基地址%.!&’4)"#数据寄存器$ /$& 566端口输入操作时序 任何时候%当 078,- 为低时读数据或地址寄存器的指令将 产生图 / 所示的输入操作时序$ 在 19: 为低后%072,-; 保持为 高表示输入% 主机检测到 078,- 为低后使 0<=-2+ 或 0(=-2+ 变 低%表示开始输入操作%当有效的输入数据在 (<">(( (<’ 的数据锁存到锁存器 ( 中%而此时 078,- 变低%一次 566 数据输出结束$ 1DE8 * 1358!935"为低一方面通知单片机可以 取走数据% 另一方面通知主机不能再输出数据$ 单片机方在 1DE8 * 1358 为低时% 可以使 958 为低从锁存器 ( 读出数据到 <318 上%为低的 958 信号又使 1DE8 * 1358!935"变高%一次数 据传输结束$ 单片机向主机送数据#在 93F8 为低时%单片机可以在 468 上产生一个高电平脉冲把 <398 上的输出数据锁存到锁存器 3 中%468 变高时%其反信号将 010-2 * 13F!93F8"信号变高%一 方面通知主机可以取走数据%另一方面通知单片机不能再输出 数据$主机在 010-2 * 13F 信号变高时%便可以从 566 的数据寄存 器读数据% 该操作将使 0<=-2+ 变低% 于是锁存器 3 的 95 为 低%一方面使锁存器 3 的数据送到 566 的 (<">(<’ 上%另一 方面使 010-2 * 13F!93F8"信号变低$ 由于 0<=-2+变低导致078,- 为高%于是主机将使 0<=-2+ 变高%将数据读入主机%此时 078,- 变低%一次数据传输结束$ 图 & 中除了两个锁存器外%其余的电路可以很方便地用一 片 G(H/IJ? 实现%该 G(H 的编程方程如下所示# KLMNO; P5QQ(R2 -,-O; S10-;2T8U; TL2 566 80M (J: M8-8 ;VU)80W;S 5QQ(R2 M;R,U; S6/IJ?4S& X10QN- 6,0B 0<=-2+%072,-;%958%468 Q,0 /%!%&%.& X9N-QN- 6,0B 078,-%95%46%1DE8%010-2 Q,0 /!%/&%/.%/#%/I& 5YZ(E19D= 46!0<=-2+ [ 072,-;& 95!0<=-2+ [ ’ 072,-;& 078,-!( 0<=-2+& 1DE8!( !958 \( !46 \ 1DE8""& 010-2!( !( 468 \( !95 \ 010-2""& ;0M 图 & 566 数据传送接口的原理图 ""# !""#$!# 计算机工程与应用 % 接口的使用 接口中各信号与 &’’ 端口的连接如表 ( 同名信号所示! )*& 可以连接到 &’’ 端口引脚 (!"(% 和 (# 中的任何一个#这 里假设连接到引脚 (! 上$% 接口与单片机的连接是&+*,- 和 +*)- 分别接到单片机的 . 位输入和输出端口’对于没有读写 控制信号的单片机!&- 和 /’- 只能接到单片机的输出 , 0 ) 线 上!通过多条指令完成数据的输出和输入’对于有读写控制信 号的单片机!&- 和 /’- 应该和读写控制及译码信号结合!用一 条指令便可完成数据的输出和输入%)*1- 和 ,*&- 分别接到单 片机的两个输入 , 2 ) 线上#采用中断方式时!这两个信号应该 连接到单片机的外部中断线上$% 我们用 345 单片机 367"8.#%# 构成的系统与上述接口 相连!由于资源限制!+*,- 和 +*)- 都接到了 .#%# 的 ’)56/! 因此在数据的输入和输出转换时! 都要对端口 ’)56/ 的方向 进行重新设置’又因为 .#%# 没有读写控制信号!每次输入和输 出都需要多条指令完成!因而对数据通信的最高速度会有一定 的限制% 在交替输入和输出的情况下!一次数据的输入或输出 需要五条指令’在连续输入或输出的情况下!一次数据的输入 或输出需要三条指令%如果在 .9:; 的主频下单片机每条指令 需要 "<(!#=>! 因此两种情况下的最高通信速率限制分别约为 ( 和 !!基本上与 &’’ 端口的最高速率相当% 从 本文后面给出的结果可以看到!单片机方面的这一限制并不是 影响通信速度的主要因素% 查询方式数据传输& 主机端通过读 , 2 ) 地址 *->@A( 得到 B,BCD 和 )*& 的状态!当 B,BCD 为 ( 时!表示有数据从单片机送 来!主机可以读 , 2 ) 地址 *->@AE 得到数据’当 )*& 为 ( 时!表 示单片机已取走数据! 主机可以将数据写到 , 2 ) 地址 *->@AE 将其发送到接口供单片机读取% 单片机方面!当 ,*&- 为 " 时! 表示有数据从主机送来!单片机可以将 )&- 置低从 +*,- 得到 数据’当 )*1- 为 " 时!表示主机已取走数据!单片机可以将数 据送到 +*)- 上然后在 /’- 上产生一个正脉冲将数据发送给 主机% 中断方式数据传输&将 &’’ 的 , 2 ) 地址 *->@A! 的 FGCE 置 (!B,BCD 由低变高时可以产生主机的打印中断!,H6-#低电平有 效$则可以当作单片机的中断信号!从而在两方都能实现数据 的中断接收%此外!)*1- 的低电平状态也可以当作单片机的另 一路中断信号! 以实现数据从单片机到主机的中断方式发送% 双方对数据的读写方法与查询方式一样% E &’’数据传输驱动程序的编写 上面介绍的数据通信过程中涉及到主机对 &’’ 的 , 2 ) 端 口的读写操作! 这在 IGBJKL> 环境的应用程序中是无法实现 的! 必须靠驱动程序来实现% 下面简单介绍一下用 IGB+DGM@D 编写驱动程序进行 &’’ 数据通信的方法% E<( 编写驱动程序 启动 IGB+DGM@D 的 +DGM@DIG;-DJ!选择 /D@-C@ - B@L JDGM@D NDKO@PC%在 8@Q@PC RK=D +@MGP@ 页面的列表中选中 ’-D-QQ@Q NKDC% 在 +@SGB@ -BJ 6@>C 5@>K=DP@ SKD RK=D +@MGP@ 页面的各选项单 中做如下设置& , 0 ) 选项单&,) 5-BT@( 的范围设置为 "U%V. 到 "U%VS #默 认值$% ,BC@DD=NC> 选项单&,BC3 的 ,BC@DD=NC H=WF@D 值设置为 V!触 发方式为 &JT@ 6DGTT@D@J#默认值$% 5@TG>C@D> 选项单&保留 PKBCDKQ#!$!>C-C=>#($和 >CDKF@XJ-C-" #E$三个寄存器即可#括号内数字为地址偏移量 KSS>@C 的值$% 在 8@Q@PC /KJ@ Y@B@D-CGKB )NCGKB> 页面选中 / 和 98 +@Z M@QKN@D 8C=JGK ?!#% 最后为项目文件取名并保存到某个文件夹中%按 1GBG>[ 结 束后!98 4/AA ,+& 将自动打开项目文件!编译连接!可以得 到 IGB+DGM@D 生成的一个基于控制台的测试程序!在该程序的 基础上便可以编制 &’’ 端口的数据通信程序% E@#[&’’+54$的调用!将其间的代码改为您自己 的通信代码!即可完成 IGBJKL> 环境下基于控制台的查询方式 &’’ 数据通信程序% 这里给出从 &’’ 端口读和写一个字节的 子程序% ]J@SGB@ )*& "U!" 2 2 )*&连接到 &’’ 端口的 (! 脚!为 ( 时可以输出 ]J@SGB@ ,*1 "UE" 2 2 ,*1#即 B,BCD$连接到 &’’ 端口的 (" 脚!为 ( 时输入有效 ]J@SGB@ ,H6X&H "U(" 2 2 控制端口的中断允许位 从 &’’ 读入一个字节!返回^( 表示无可用数据’返回 "_!## 为读 到的数据 GBC 5@-J&NN*‘C@#&’’+54X:3H+a& [&’’+54$ ! GS#&’’+54X5@-J>C-C=>#[&’’+54$\ ,*1$ D@C=DB &’’+54X5@-J>CDKF@XJ-C-X"#[&’’+54$\"USS’ @Q>@ D@C=DB –(’ " 将一个字节输出到 &’’!返回 13a8& 表示不能输出#上一 次输出还没有取走$!返回 65b& 表示输出成功 *))a IDGC@&NN*‘C@#&’’+54X:3H+a& [&’’+54!*R6& +-C-$ ! GS#&’’+54X5@-J>C-C=>#[&’’+54$\ )*&$ ! &’’+54XIDGC@>CDKF@XJ-C-X"#[&’’+54!+-C-$’ D@C=DB 65b&’ " @Q>@ D@C=DB 13a8&’ " E$% 中断方式 &’’数据通信程序 对上面查询方式 &’’ 数据通信程序进行如下改动& #($在 &’’+54X)N@B#\[&’’+54$调用成功后加入下面 语句允许中断并使能打印口中断& &’’+54X,BC3&B-FQ@#[&’’+54! &’’+54X,BC3:-BJQ@D5K=CGB@$’ &’’+54XIDGC@PKBCDKQ#[&’’+54! #*R6&$#&’’+54X5@-JPKBCDKQ#[&’’+54$c,H6X&H$$’ 2 2 读一次数据以便能产生下一次中断 &’’+54X5@-J>CDKF@XJ-C-X"#[&’’+54$’ #!$在 &’’+54X/QK>@#[&’’+54$调用之前加入下面语句 禁止中断& GS#&’’+54X,BC3,>&B-FQ@J#[&’’+54$$ ##$ 计算机工程与应用 !""#$!# ! ! ! ! ! !%&&’()*+,-.’/01234!5%&&’()"# %&&’()*67/-489,-793!5%&&’()$ !:;<%" !%&&’()*(41=89,-793 !5%&&’()"> ? +@<*%@.:A%*:+<""# !B"修改中断响应程序$在其中加入对 %&& 端口数据的读 入处理 C9/= %&&’()*+,-.D1,=347(9E-/,4 !%&&’()*D.@’A% 5%&&’()$%&&’()*+,-.*(%FGA< !/,-(40E3-" ! /H!%&&’()*(41=0-1-E0!5%&&’()"> +:I" ! J J 取新收到的数据 (48’1-1K%&&’()*(41=0-7924*=1-1*"!5%&&’()"# ’1-1LM"<(G%# J J 置数据收到标志 +,-@ENOO# # # 其中 (48’1-1%’1-1LM 和 +,-@EN 都是全局变量$当 ’1-1LM 为 <(G% 时$(48’1-1 则为新收到的数据$ 主程序中用完该数 据后应将 ’1-1LM 置为 I.AF%$ 以免重复使用#+,-@EN 则用于 计算中断接收数据的个数& 另外$为保证中断方式数据通信成 功$应在 6/,=9P0 系统的硬件设备管理中允许打印端口使用中 断并将其中断号设定为 Q& # 结论 我们将上述 %&& 接口电路和 .)( 单片机 .协议
及高速并行口 . J ’ 转化转换器的设 计%]&$电子技术应用$[RRS#!!"’XQ?XS B$朱世鸿$可编程逻辑器件 &A’ 实用设计技术%^&$北京’电子工业出版 社$[RRX 运行环境和方式 双方同时收发 主机发单片机收 单片机发主机收 6/,T&查询 收 #! _: J 0 发 #!_: J 0 ["!_: J 0 ["B_: J 0 6/,T&中断 收 !! _: J 0$发 !! _: J 0 RS_: J 0 !B_: J 0 6/,RS查询 收 B" _: J 0$发 B" _: J 0 #V_: J 0 #Q_: J 0 6/,RS’LF查询 收 !#V_: J 0$发 [BX _: J 0 B!V_: J 0 B!#_: J 0 表 ! %&& 端口通信测试结果 !上接 ["# 页" 优化控制还缺乏一个有效的手段$只能通过建议的方法提出优 化策略$最终由人工完成对数据库的调整& 未来可以在这方面 进行更深入的研究%S&& !B"<&UUA91=47 为数据库系统的性能优化和自管理研究 提供了一个平台$未来可以进一步将它的研究成果扩展到其他 应用程序和数据库自管理程序中 %R&& !收稿日期’!""# 年 # 月" 参考文献 [ $<71,018-/9, &798400/,W &47H97N1,84 U9E,8/3 !<&U "<&U :%@UDY ^.(_<^ U F-1,=17= F\48/H/81-/9, (4C/0/9, #%F&$!""XY"X ! $‘E40- 公司 ’:4,85N17M I18-97a (4H474,84 ^1,E13 $ 5--\ ’ J J PPP $ bE40-$89N B$<&U U9E,8/3$5--\’ J J PPP$-\8$97W J X$^17-/, &$AE7/!+:^ 公司"’在 A/,Ec 上模拟大规模并行数据库处理$ 5--\’ J J PPPYR""$/2N$89N J =4C439\47697M0 J 8, J =N== J 3/2717a J -48517-/Y 8340 J "!"B3E7/4 J "!"B3E7/4*4,W$05-N3 #$Z A1,H71,85/$& ’4331 &47E-1$. &4779,4 4- 13$<9P17= 1 ,4P 31,=0Y 81\4 9H 0a0-4N0 N1,,1W4N4,- /, 1, 1E-9,9N/8 89N\E-/,W 4,C/79,Y N4,-%]&$+:^ F;F<%^F ]LG(@.A$!""B#X!![" V$人大金仓信息技术有限公司$_/,W2104%F 管理员手册与 ]’:U 开发 手册!_/,W2104%F 产品技术文档" Q$]95,09,$LU&’L71834R/ 性能调整学习指南 ]904\5 U%^&$电子工业出 版社 S$A 6 (E00433$F & ^97W1,$% Z U579,$U398MP97M’. ,4P N9C4N4,- /, 1E-9,9-/8 0a0-4N0%]&$+:^ F;F<%^F ]LG(@.A$!""B#X!![" R$] _4\517-$’ U5400$<54 )/0/9, 9H .E-9,9N/8 U9N\E-/,W%]&$U9N\E-47 ^1W1d/,4$+%%%$!""B#![" ["$印旻$]1C1与面向对象程序设计教程%^&$第一版$高等教育出版社 ’()
/
本文档为【AVR单片机与PC机打印口高速双向数据通信接口】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索