|
#include "stdio.h" |
#include "dos.h" |
main() |
//8250initialize: |
outportb(0x30b,0x80); |
|
outportb(0x308,0x0c); |
|
outportb(0x309,0x00); |
|
outportb(0x30b,0x1f); |
|
//set line control register LCR |
|
outportb(0x30c,0x03); |
|
//set MODEMcotrol register MCR |
|
outportb(0x309,0x00); |
|
//set int enable register IER |
|
|
|
printf("\nthe board code:"); |
|
|
|
|
do {c=(inportb(0x30d))&0x40;} |
while (!c); |
|
b=inportb(0x308); |
|
printf("\nrec boardcode:%d\n",b); |
|
printf("complete!"); |
5调试及使用
在分部实验测试RS-485驱动电路时,可用信号源产生一个TTL电平的方波,将此方波加到MAX485E的数据输入端DI,并使驱动使能DE有效,用示波器观察485的输出端波形,可以看到A、B线上为差动的方波。然后调节信号源的输出频率,当频率在4.8kHz时输出波形良好,也就是说,驱动器在9600bps的数据率下能正常工作。继续调高频率,发现输出波形在占空比上有很大的畸变,甚至完全没有输出。检查后发现这是由光耦的开关时间造成的,但该光耦对9600bps以下的信号不产生影响。如果要考虑提高通信数据率,必须选用高速光耦,如TI公司的TIL193B。UART8250也限制了数据率的提高,如果用TI公司TL16C450、TL16C550等与8250功能兼容的芯片,在通信速率上可以大大改善卡的性能(详见TI数据光盘)。
在制成印刷电路板后,一定要严格检查,确保线路的正确,无短路、漏电处。如不仔细检查,在插入PC总线槽进行调试时,就有可能损坏整个工控计算机。运行测试程序可由小到大,由零到整。例如,检测发送时可以让机器循环发送某个固定数据,如果接口卡运行正常的话,将输出一个固定波形的485信号,可以用示波器清楚地判断输出正确与否。
在将本接口卡应用于系统通信时,对传输线的选择、铺设、匹配也是必须注意的问题。RS-485信号收发系统中,一般选择双绞线作为信号传输线。我们知道信号在传输线上传送,若遇到阻抗不连续的情况时,就会出现反射现象,从而影响信号的远距离传送。因此必须采用阻抗匹配的方法来消除反射。普通双绞线(一般要求节距D/d<=10,D为节距,d为线外径)的特性阻抗一般在110~130Ω之间,这个值与线的绝缘材料的厚度有关,而与线绞合的松紧程度关系不是很大。例如SBUR0.12mm导线,每米绞100匝时特性阻抗是123Ω,每米绞40匝时,为129Ω。为了与这个特性阻抗进行匹配,通常在传输线末端接120Ω电阻。对于信号传输线,不仅要注意它的特性阻抗,还要注意它对信号的衰减,往往不同型号的双绞线,其特性阻抗有可能相同,但对信号的衰减却不同。尤其是在长距离通信中,导线电阻对传输有着不可忽略的影响。具体影响可根据所用的传输线每单位长度的电阻值及终端所接匹配电阻的大小进行计算。
另外,在系统安装过程中,传输线最好采用屏蔽线,而且应尽量做到信号传输线单独铺设,不要与交流电电缆铺设在一条电缆沟中;强信号线和弱信号线应尽量避免平行走向,尽量使二者正交,以使电磁耦合干扰减到最小。如果难以做到正交,也可以平行布线,但两者距离应足够大。
RS-485标准在工程上已被广泛采用,本文介绍的RS-485通信卡的研制,旨在探讨如何让该标准更好地在工程领域里发挥作用。
参考文献
1周明德.微型计算机原理及应用(上册).清华大学出版社,1991
2钱受宇,杜斌.微机通信技术.电子科技大学出版社,1992
3路有容.PC系列微机接口扩展设计.成都科技大学出版社,1994
498新产品研讨会资料. P&S武汉力源电子股份有限公司
5MAXIM产品资料全集.P&S武汉力源电子股份有限公司 |