终端服务器设计
—马至晶
摘要
双串口终端服务器是为终端到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 –i 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 –i 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 –o server –pthread
执行#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传输机制。我们只是实现了较简单的功能,可能还不能满足工业生产要求,但是终端服务器的工作机理我们已经掌握了。这是它最精华的地方也是其最基本的功能。但本程序有好多不完善的地方但是基本功能已实现,以后好有待改善。