EDN China > 设计实例 > 微处理器与DSP > 多媒体处理器 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

如何使用PC并口与2线设备通信

来源:电子系统设计?? 2007年07月15日 ?? 收藏0

的集电极开路输出。集电极开路输出需要连接双向SDA信号到一个专门的并口输入引脚和一个专门的并口输出引脚(与使用一个并口双向引脚的情形相反,这通常需要用户设置PC BIOS)。

?????? 既然2线接口的SCL信号对芯片来说为仅输入(不实现时钟扩展),可使用并口的D0产生SCL (PC DB-25连接器的引脚2),配置为输出。 D0连接到74HC05反相器(U1E)的一个输入。然而,一些并口可能不能输出足够高的电压,反相器无法判断电压为高电平,所以电阻R3用作上拉电阻使接口对PC之间的差异不敏感。同样地,为补偿这种差异,电容C4作为一个空的元件包括进去,如果与带有噪声的PC并口连接时可将C4安装上去。对大多数应用不需要该电容,但是如果PCB正在构建,并不影响,至少包括电容的封装。最后,反相器U1E的输出为SCL。因为输出为漏极开路,需要上拉电阻R1实现高电平逻辑。
另外一个方面SDA信号是双向。使用一个输入引脚(PC DB-25连接器引脚12)和一个输出引脚(D1, PC DB-25连接器引脚3)实现双向工作。从PC到2线设备的

通信由产生SCL信号的同样电路实现。并口的输出D1连接到另外74HC05 (U1)的另一个反相器的输入(U1A)。再强调一次,为保证并口高电平逻辑足够高,反相器能够正确判断,上拉电阻R4将信号D1电平上拉到VCC。同样地,电容C5作为一个空的元件,在遇到噪声的并口时可安装用以滤波。反相器的输出为漏极开路,需要R2实现高电平逻辑。

?????? 使用并口的一个输入引脚(引脚12)和74HC05反相器(U1B)实现从2线设备到PC的SDA通信。应该指出的是,为使设备能够与PC通信,应用软件必须使D1为低电平,这样反相器的输出释放SDA,允许2线设备控制SDA。反相器U1B的输入监视SDA。反相器的输出通过R6上拉到VCC,R6负责判定高电平逻辑。串联电阻R5用作冲突状态下的保护。在这个例子中不需要串联电阻,因为并口的引脚12仅用作输入。如果使用并口引脚作为输入输出,在并口输出高电平电压且外部将高电平电压加入到并口上时这个电阻变得非常重要。即使应用软件没有导致冲突,可能另外一个程序也要在一段时间内访问该端口(例如,操作系统周期性搜索打印机)。

?????? 仅需要74HC05六个反相器中的三个用于实现2线通信,其余三个反相器并未没用。为避免浪费,原理图也包括了一个可选的电路,使用两个未使用的门驱动LED,可在软件控制下开启或者关闭。并口引脚17为输出引脚,用于控制反相器U1C和U1D,并行提供足够的拉电流驱动各种LED。电阻R7,与R3、R4一样,使反相器输入具有足够高的电压,确保高电平逻辑。电阻R8是LED限流电阻,用于控制LED的亮度。有趣的是,并口引脚17,对PC内部有反相器。对引脚17写0将转化成高电平,在到达DB25之前。高电平输入到U1C和U1D引起输出低电平,打开LED。

?????? 其余没有用到的反相器输入应当连接到GND,输出高阻以防止冲突。

?????? 电容C1和C2用于电源电压的旁路,尽量靠近PCB上电源。同样地,去藕电容C3应该尽可能靠近74HC05的VCC和GND放置。

?????? 当连接SCL和SDA到2线设备时,应确保接口地与2线设备地共地。如果接口的SCL和SDA连接到包含2线设备的电路时,注意R1和R2与应用电路2线上拉电阻并联。如果你计划在电路内与2线设备连接,可适当调整R1和R2,如果应用电路已经有SDA和SCL上拉电阻,可去掉R1和R2。

?????? 最后,在原理图中给出的,阴型DB25接口用在接口原型中。在原理图中给出了制造商和器件型号以及阳型DB25电缆。取决于电源,很容易使用阳型DB25连接器和DB25阳型到阴型电缆。

?????? 并口寄存器

?????? PC与接口之间的通信使用三个寄存器中的四位实现(表1)。并口(LPT1)缺省基地址为378h。其余的两个可能地址为3BCh和278h。基地址为8位数据字节的地址。该字节包含控制引脚D7-D0的位,最低有效位(LSB)为D0。在数据字节后面、基地址+1处的字节为状态字节。在给出的原理图中,状态


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

计算机系统? 并口? PC机通信?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈