Linux系统下RS—485串行通信程序设计
l36计算机应用研究2002芷
Linux系统下RS.485串行通信程序设计
王志颖
(1.中国工程物理研究院电子工程研究所,四Jl
用研究所,四JI1绵阳621900)
马卫东
绵阳621900;2.中国I程物理研究院计算机应
摘要:介绍了在Linux操作系统下RS-485多hi户串行接1:2卡的安装,配王厦串1:2的程序设计技术.详
细叙述了un世系统下串行通信资源的程序设计方法,相关的系统调用,程序鳊剌技巧.
关键词:数据通信;RS.485;串口;Linux;系统调用
中囝法分类号:TN919.5文献标识码:A文章编号:1001.3695(20o2)02_0136_03
RS-485SerialCommunicationProgramminginLinux
WANGi-y,MAWei-do
(1lnaittaeofElearonic脚w嘶.CASP.Mio~angmn621900,∞;2l~.stltmeCom.pmerl.CAEP.却Suchttan
621900.cm)
Abstract:hlthispalm."introducetheinstslladon.configurationmadprogramraing缸RSM.85serialcommunicationcardinLintLx
ThepI曲ⅡI.mgdesignmethod,teehmqueandrelationsystemegO.ofserialeommurtleationres0ufcearensm~ted.
Keywords:DataCoam~tmication;KS-485;SerialPort;Linux;SystemCall
Linux秉承了Unix操作系统数十年设计的精髓,成为
当前最流行的操作系统=它具有高效,健壮,安全及功能
齐全等特征,并且完垒自由,免费,而赢得了人们的青
睬:IJnm,:的发展凝聚了世界各地无数开发人员的大量
心血,体现了崭新的信息世界的共建共享,共荣的精神:
Linux能够运行在i386,Alpha.SPARC.PowerPC等多种计算
机平台上,符合POSIX标准.源代码公开.在相同的硬件
配置平台上,其性能远比其它Pc操作系统要好=串口是
微型机上的标准RS-232设备,硬件设计简单,使用方便.
尤其是随着各种为工业测控领域扩展其功能而开发的
RS-422,RS.485标准的高速通信板卡出现后,其传输速
率高懂离远,抗干扰能力强一个接口板可同时支持多
个串口等特点,使其获得了广泛的应用.
1Linux操作系统中的串行通信设备
Linux操作系统下串口等通信资源是作为串行通信
终端设备ttySxx实现的:包括标准Pc串口(COM1~
COM4)和可扩展的多口串行通信卡,均可方便的安装,使
用.一般来说,Linux的串行通信终端设备ttySxx的驱动
程序能够支持所有使用8250,16450.16550,I6550A及其
兼容的UART芯片的串口卡.
1.1串行通信设备简介
通常unux内核编译配置时已经加入串口支持,因
此当Linox启动时会自动检测到标准的串口设备.对于
扩展的多口串行通信卡,则采用在系统启动的配置脚奉
中配置/ere/serialeonf文件或调用setserial命令动态加
收稿日期:200102—28
载:Linux操作系统中的所有设备以设备文件名的方式
存储在目录/dev中.其中每一个设备由一个主设备号和
一
个状设备号惟一确定:对于串口设备,其用于输入的
串口终端ttySxx的主设备号为4,用于输出的串口设备
cu的主设备号为5.从Linux2.0x开始,ttS.Sxx设备既
能用于输人也能用于输出,且在Linux2.2.x版本中,CHaX
已经废弃不用.Linux串行通信设备和windows操作系
统中的串口对应如表1所示:
表1串口设备特征表
1lnu输^1王设1次世1u输出1主设毽PC机上对串奸设备名称备号备号『串行设备名稀l号I备三J应的串.
Ⅲ∞-14I6{Jm,Ⅲ5—rIM1一——
L_——十—_}一—————一一一——
—
!!!LJ!.i竺J!!!一
/de~ltyZ',7.14J66/妇/cua25『66ICOM3——————
}————卜I————————————————一————
d'1y531I671,dev/eu~15-j6JCO
IJnux通常的发行套件都应该已经正确地建立了这
些设备.如果系统中缺少某些设备可以用mknod指令
建立之.如建立ttvS0设备的操作指令如下:
mknod—ol666idev/t~SOc464
或者在/dev目录下运行设备制作脚本程序MAKEDEV:
/MAKEDEVttyS0
1.