终端服务器设计
―马至晶
摘要
双串口终端服务器是为终端到
TCP/IP
之间完成数据转换的通讯接口协议转换器。
提供数据双向透明传输,实现串口转
TCP/IP
。此终端服务器是基于
ARM9 s3c2410
芯片实现的,采用的是保定慧通科技公司的
TE2410
开发板(
[url]http://www.witech.com.cn/[/url]
)
TE2410
型ARM9开发板,基于三星公司的ARM处理器S3C2410A,它适用于工业控制、消费电子等领域。此开发板有两个串口和一个网口,本次开发就应用这两个串口和网口实现串口和网口双向通信的目的。
工作原理
本次设计思想是在开发板上移植
linux
操作系统,然后编写好应用程序后调试没有错误了,将应用程序做成文件系统烧到开发板上,将两个串口分别接到两台电脑上将网口接到另一台电脑上。在各台电脑上分别起一个超级终端,然后分别给串口发送数据检测网口是否接收到数据并检测是否传输正确,还有是不是能检测到是哪个串口发送过来的数据。通过网口分别对每个串口发数据,在超级终端下观察串口接收是否正确,此网口必须能分别独立的对某个串口发送数据而不影响其他串口。从而达到全双工的数据的转换。
硬件电路
COM1:
串口
1
用于监测程序运行情况及收发数据
COM2:
串口
2
用于收发数据
以太网口:10.00 Mbps 用于全双工的转换收发数据
实现方法
一.烧写linux 内核 到开发板上
1 .
将光盘上的所给的内核镜像
zImage
拷贝到
你电脑的某个硬盘上,将光盘上所给的
Mytftp.exe
文件拷贝到和
zImage
同一个文件夹下。
2.
重启开发板,到
vivi
敲空格,然后在
vivi> load flash kernel t
3.
启动
dos
命令
在
zImage
下输入
myftp �Ci 192.168.0.12 PUT zImage
回车
稍等就会出现
vivi>
表示烧写成功
二。烧写空文件系统
1.
烧写方法同烧写
linux
内核
将
root_china.cramfs
拷贝到
mytftp.exe
同一文件夹下
2.
重启开发板,到
vivi
敲空格,然后在
vivi> load flash root t
3.
启动
dos
命令
在
root_china.cramfs
下输入
myftp �Ci 192.168.0.12 PUT root_china.cramfs
回车
稍等就会出现
vivi>
表示烧写成功
三。编写应用程序在linux 下调试
1.
编程思想
本程序为了实现双串口到一网口数据转换而且要求同时性,所以在程序中引入了两个进程,每个进程负责一个串口的收发全双工的工作。每个进程中引入了两个线程,第一个线程负责收数据,另一个负责发数据。进程之间是分别独立的且是同时进行的,从而可以达到预期目的。基于上述考虑编写了此应用程序
server.c
,见附录
1,
调试程序
Client.c
见附录
2
2.linux
下的调试方法
新建一个终端,编写编写终端服务程序
server.c
。
交叉编译
server.c #/opt/host/armv4l/bin/armv4l-unknown-linux-gcc server.c
�Co
server �Cpthread
执行
#gcc client.c
-
o client
-
pthread
和
#gcc client1.c
-
o client1
-
pthread
生成
client
和、
client1
可执行
文件。
启动
nfs
服务
#service nfs restart
设置本机的
ip # ifconfig eth0 192.168.0.11 up
新建一终端,启动
#minicom
设置开发板的
ip
:
#ifconfig eth0 192.168.0.12 up
测试两个是否建立连接:
ping 192.168.0.11
待连接成功后将生成的
server
可执行文件
Mount
到目标板上执行
#mount 192.168.0.11:/ /mnt
进入
mnt
目录下的找到
server
可执行文件执行
#./server
切换到第一个终端下执行
#./client 192.168.0.12
在
server
这边写数据看是否
client
下能否正确接收,在
client
这边写数据看是否
server
下能否正确接收。如果能正确收发则程序测试通过。
切换到第一个终端下执行
./client1 192.168.0.12
在
server
这边写数据看是否
client1
下能否正确接收,在
client1
这边写数据看是否
server
下能否正确接收。如果能正确收发则程序测试通过。
3.
制作文件系统
将
server
拷贝到
root_china
文件夹下的
bin
文件夹下
打开
root_china
下的
linuxrc
文件,在倒数第二行加入
ifconfig eth0 192.168.0.12 up
/bin/server
(注意要加回车)
退到
root_china
上一级目录下执行:
#./mkcramfs root_china root_china.cramfs
生成的
root_china.cramfs
文件
,
再将此文件
挂到
windows
下然后烧写到目标板上就行了,方法步骤与文件系统制作相同。
4.
在
windows
下测试方法同
linux
下类似。
结束语
通过此次设计我们真正理解了串口与网口通信的机理,以及
TCP/IP
传输机制。我们只是实现了较简单的功能,可能还不能满足工业生产要求,但是终端服务器的工作机理我们已经掌握了。这是它最精华的地方也是其最基本的功能。但本程序有好多不完善的地方但是基本功能已实现,以后好有待改善。