用 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);