|
Linux Serial Programming HOWTO - 串口通讯编程
http://www.fanqiang.com (2001-05-02 11:07:12)
by Peter H. Baumann, Peter.Baumann@dlr.de
译者: 曾元佑 yytseng@ms16.hinet.net
v1.0, 22 一月 1998
--------------------------------------------------------------------------------
本文件将叙述如何在 Linux 环境下撰写序列埠的通讯程式.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
1. 简介
本文是 Linux 序列埠程式撰写的 HOWTO. 全篇都在讨论如何在 Linux 环境下, 以序列埠与其他 装置/电脑 通讯的程式写法. 所解释的技术包含: 标准的 I/O (只具备 传送/接收 线的), 非同步 I/O, 及 等待来自多信号源的输入讯号 的写法.
本文不会叙述如何设定序列埠, 因为这在 Greg Hankins 的 Serial-HOWTO 已经有说明了.
我必需强调我并非此领域中的专家, 而是在专案中曾遇到过这类的通讯问题. 在这所提到的□例程式是衍生自 miniterm 的程式码. 可在 LDP 程式设计师指南取得 (ftp://sunsite.unc.edu/pub/Linux/docs/LDP/programmers-guide/lpg-0.4.tar.gz 及其他映射站) 在□例那个目录下.
我开始写这份文件是在 1997 年 六月, 现在我已经移转到 WinNT 以满足客户的需求, 以致於我没能学得更深入的知识. 如果任何人有什麽意见, 我很乐意把它摆进这份文件中 (参考 回馈 那一节). 如果有人能接手这份工作并加以改进, 请 e-mail 给我.
所有的□例都在 i386 Linux Kernel 2.0.29 下测试过.
1.1 版权
Linux Serial-Programming-HOWTO 的版权(C) 1997 是 Peter Baumann 所有. Linux HOWTO 文件可以完整或部份以实际或电子型式重制或散布, 只要版权宣告能保留在所有散布的副本中. 商业性的重制散布是许可并被鼓励的; 不过, 如果以此型式的散布 应该 告知作者.
所有有关的翻译, 衍生的工作, 或整合合并任何 Linux HOWTO 文件皆必须在此版权宣告规□之下. 也就是, 你不可以自 HOWTO 所衍生的工作中, 散布的文件上附加额外的限制条款. 除了这些规则之外皆可在某种条件的授与; 请联络 Linux HOWTO 协调员: 如以下所给的位址.
简而言之, 我们希望尽可能得透过各种管道促进这份资讯的流通, 不过, 我强烈的希望将版权宣告置於 HOWTO 的文件上, 任何 想 重新散布 HOWTO 的人, 均希望您能知会我们一下.
如果你有问题, 请经由 email 与 Tim Bynum, Linux HOWTO 协调员连络, linux-howto@sunsite.unc.edu.
1.2 本文最新的版本
Serial-Programming-HOWTO 最新的版本将放在
ftp://sunsite.unc.edu:/pub/Linux/docs/HOWTO/Serial-Programming-HOWTO 及其他映设站台. 有许多的格式, 如 PostScript 及 DVI 的版本放在 other-formats 目录下. Serial-Programming-HOWTO 也放在 http://sunsite.unc.edu/LDP/HOWTO/Serial-Programming-HOWTO.html 并会每个月摆一份到 comp.os.linux.answers.
1.3 回馈
请把任何修正, 问题, 意见, 建议, 或其它附加的题材传送给我. 以让我改进这份 HOWTO! 并详细告诉我哪个部份是您不能了解, 或不够清楚的. 你可以用 email 连络我 Peter.Baumann@dlr.de. 请把 Serial-Programming-HOWTO 的版本号码附上, 本文版本号码是 0.3.
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
2. 开始
2.1 侦错
最好的侦错你程式码的方法是建构另一台 Linux box, 并把两台电脑用 null-modem 缆线连接. 用 miniterm (可在 LDP 程式设计师指南取得 (ftp://sunsite.unc.edu/pub/Linux/docs/LDP/programmers-guide/lpg-0.4.tar.gz 在□例那个目录下) 以传送字元到你的 Linux box. Miniterm 很容易编译而它会把所有输入到键盘的字元透过序列埠传送. 只有这个宣告定义会被检查 #define MODEMDEVICE "/dev/ttyS0". 如果是 COM1 设定为 ttyS0, 如果是 COM2 设定为 ttyS1 等等.. 先前的测试是必要的, 所有的 字元都将以 raw 方式 (不经任何处理) 直接传送. 测试是否连接正确, 在两台电脑上都启动 miniterm 然後随便在键盘上乱按. 在其中一台
[1] [2] [3] 下一页
|