background image

                      

 用 C 语言编写简单的接口程序

    在通信中,为了保证运行安全可靠,标准的串行口必须具有许多握手信号和状态信息。
这是因为通信的各个计算机 CPU 速度不一样(这会导致?错帧

? ?以及发送机发送数据速

 

度比接收机接 收速度快(这会导致?过冲

? ?为解决这个问题,我们采用一个简单的握手

信号,即发送机每次仅发送半个字节(低 4 位)的数据,而另外半个字节(高 4 位)则
用来传送信息。我们可以对信息位(高 4

 

位)进行如下简单的编码:

0H

 

: 发送的是新的半个字节数据

1H

 

: 重新发送上次传送错误的数据

2H

 

: 文件名结束

3H

 

: 文件结束

这样,每当发送机发送一个字节以后,就等待接受机发回送信号,这回送信号就是发送
机发送过来的那个字节。发送机接收到回送信号后,把它与刚发送的字节相比较,如果相
同,就发送新的半个字节,否则就重新发送。新数据与旧数据通过信息位来区分。下面就
是我用 C 语言编写控制串行口的程序。以一个发送文件的程序为例,介绍一下用 C 语言实

 

现对接口的 控制。

     

源 程 序 为:
 #include “dos.h"
 #include “stdlib.h"
 #include “stdio.h"

 #define PORT 0

void SendFile(char fname); 

         

* 发 送 文 件 */

void Send(int s);  

             

* 发 送 一 个 字 节 */

void SendFileName(char fname);

           

* 发 送 文 件 名 */

void ReceiveFile();
 /           

* 接 收 文 件 */

void GetFileName(char f);

           

* 接 收 文 件 名 */

void InitPort(int port,unsigned char para); 

           

* 初 始 化 端 口 */

void SendPort(int port,char c);
 /           

* 端 口 发 送 */

int ReadPort(int port);
 /             

* 读 端 口 字 节 */

int CheckState(int port); 

             

* 检 查 端 口 状 态 */

int Receive(int port,int G);