打开串口和串口设置
打开串口,设置串口
hCom =CreateFile( "COM2 ", GENERIC_READ | GENERIC_WRITE, // 允许读写
0,// 此项必须为0
NULL,// no security attrs
OPEN_EXISTING,//设置产生方式
FILE_FLAG_OVERLAPPED, // 我们准备使用异步通信
NULL );
请大家注意,我们使用了FILE_FLAG_OVERLAPPED结构。这正是使用API实现非阻塞通信的关键所在。
ASSERT(hCom!=INV ALID_HANDLE_V ALUE); //检测打开串口操作是否成功
SetCommMask(hCom, EV_RXCHAR|EV_TXEMPTY );//设置事件驱动的类型
SetupComm( hCom, 1024,512) ; //设置输入、输出缓冲区的大小
PurgeComm( hCom, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCL EAR 错误!超链接引用无效。
| PURGE_RXCLEAR ); //清干净输入、输出缓冲区
COMMTIMEOUTS CommTimeOuts ; //定义超时结构,并填写该结构
…………
SetCommTimeouts( hCom, &CommTimeOuts ) ;//设置读写操作所允许的超时
DCB dcb ; // 定义数据控制块结构
GetCommState(hCom, &dcb ) ; //读串口原来的参数设置
dcb.BaudRate =9600; dcb.ByteSize =8; dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT ;dcb.fBinary = TRUE ;dcb.fParity = FALSE;
SetCommState(hCom, &dcb ) ; //串口参数配置
上述的COMMTIMEOUTS结构和DCB都很重要,实际工作中需要仔细选择参数。
⑶启动一个辅助线程,用于串口事件的处理。
Windows提供了两种线程,辅助线程和用户界面线程。区别在于:辅助线程没有窗口,所以它没有自己的消息循环。但是辅助线程很容易编程,通常也很有用。
在次,我们使用辅助线程。主要用它来监视串口状态,看有无数据到达、通信有无错误;而主线程则可专心进行数据处理、提供友好的用户界面等重要的工作。
hCommWatchThread=
CreateThread( (LPSECURITY_A TTRIBUTES) NULL, //安全属性
0,//初始化线程栈的大小,缺省为与主线程大小相同
(LPTHREAD_START_ROUTINE)CommWatchProc, //线程的全局函数
GetSafeHwnd(), //此处传入了主框架的句柄
0, &dwThreadID );
ASSERT(hCommWatchThread!=NULL);
⑷为辅助线程写一个全局函数,主要完成数据接收的工作。请注意OVERLAPPED结构的使用,以及怎样实现了非阻塞通信。
UINT CommWatchProc(HWND hSendWnd){
DWORD dwEvtMask=0 ;
SetCommMask( hCom, EV_RXCHAR|EV_TXEMPTY );//有哪些串口事件需要监视?
WaitCommEvent( hCom, &dwEvtMask, os );// 等待串口通信事件的发生
检测返回的dwEvtMask,知道发生了什么串口事件:
if ((dwEvtMask & EV_RXCHAR) == EV_RXCHAR){ // 缓冲区中有数据到达
COMSTAT ComStat ; DWORD dwLength;
ClearCommError(hCom, &dwErrorFlags, &ComStat ) ;
dwLength = ComStat.cbInQue ; //输入缓冲区有多少数据?
if (dwLength > 0) {
BOOL fReadStat ;
fReadStat = ReadFile( hCom, lpBuffer,dwLength, &dwBytesRead;
&READ_OS( npTTYInfo ) ); //读数据
注:我们在CreareFile()时使用了FILE_FLAG_OVERLAPPED,现在ReadFile()也必须使用
LPOVERLAPPED结构.否则,函数会不正确地报告读操作已完成了.
使用LPOVERLAPPED结构, ReadFile()立即返回,不必等待读操作完成,实现非阻塞
通信.此时, ReadFile()返回FALSE, GetLastError()返回ERROR_IO_PENDING.
if (!fReadStat){
if (GetLastError() == ERROR_IO_PENDING){
while(!GetOverlappedResult(hCom,
&READ_OS( npTTYInfo ), & dwBytesRead, TRUE )){
dwError = GetLastError();
if(dwError == ERROR_IO_INCOMPLETE) continue;
//缓冲区数据没有读完,继续
…… ……
::PostMessage((HWND)hSendWnd,WM_NOTIFYPROCESS,0,0);//通知主线程,串口收到数据}
C#和232串口通信方法
本例程主要讲解使用C#,实现与232串口通信。达到采集串口数据,监控,可视化处理等。 一.概述 在Visual Studio 中编写串口通讯程序,一般都使用MicrosoftCommunicationControl(简称MSComm)的通讯控件,只要通过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。但在技术广泛应用的今天,Visual 没有将此控件加入控件库,所以人们采用了许多方法在Visual 来编写串口通讯程序:第一种方法是通过采用Visual Studio 中原来的MSComm 控件这是最简单的,最方便的方法,但需要注册;第二种方法是采用微软在.NET 推出了一个串口控件,基于.NET的P/Invoke调用方法实现;第三种方法是自己用API写串口通信,虽然难度高,但可以方便实现自己想要的各种功能。 现在微软推出了最新版本的Visual Studio 2005开发工具,可以不再采用第三方控件的方法来设计串口通讯程序。NET Framework 类库包含了SerialPort 类,方便地实现了所需要串口通讯的多种功能,为了使MSComm编程方法快速转换到以SerialPort类为核心的串口通讯的设计方法,本文着重讨论了Visual Studio 的MSComm控件和SerialPort 类设计方法的异同点。 二.SerialPort常用属性、方法和事件 1.命名空间 命名空间包含了控制串口重要的SerialPort类,该类提供了同步I/O 和事件驱动的I/O、对管脚和中断状态的访问以及对串行驱动程序属性的访问,所以在程序代码起始位置需加入Using 。 2.串口的通讯参数 串口通讯最常用的参数就是通讯端口号及通讯格式(波特率、数据位、停止位和校验位),在MSComm中相关的属性是CommPort和Settings。SerialPort类与MSComm有一些区别: a.通讯端口号
Linux下串口通信编程
Linux下串口通信编程 一、什么是串口通信? 串口通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。 二、串口通信的分类 串口通信可以分为同步通信和异步通信两类。同步通信是按照软件识别同步字符来实现数据的发送和接收,异步通信是一种利用字符的再同步技术的通信方式。 2.1 同步通信 同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。 它们均由同步字符、数据字符和校验字符(CRC)组成。其中同步字符位于帧开头,用于确认数据字符的开始。数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;校验字符有1到2个,用于接收端对接收到的字符序列进行正确性的校验。 同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。 2.2 异步通信 异步通信中,数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。 接收端检测到传输线上发送过来的低电平逻辑"0"(即字符帧起始位)时,确定发送端已开始发送数据,每当接收端收到字符帧中的停止位时,就知道一帧字符已经发送完毕。 在异步通行中有两个比较重要的指标:字符帧格式和波特率。 (1)字符帧,由起始位、数据位、奇偶校验位和停止位组成。 1.起始位:位于字符帧开头,占1位,始终为逻辑0电平,用于向接收设备表示发送端开始发送一帧信息。 2.数据位:紧跟在起始位之后,可以设置为5位、6位、7位、8位,低位在前高位在后。 3.奇偶校验位:位于数据位之后,仅占一位,用于表示串行通信中采用奇校验还是偶校验。 (2)波特率,波特率是每秒钟传送二进制数码的位数,单位是b/s。 异步通信的优点是不需要传送同步脉冲,字符帧长度也不受到限制。缺点是字符帧中因为包含了起始位和停止位,因此降低了有效数据的传输速率。 三、什么是RS-232? RS-232-C 接口(又称EIA RS-232-C)它是在1970 年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"该标准规定采用一个25 个脚的DB25 连接器,对连接器的每个引脚的信号内容加
USB转串口和并口的方法(参考仅供)
如今呢是使用笔记本的人越来越多了,可是呢买了笔记本对于学习很多单片机比如说51或者AVR就不方便了。因为大多数电脑都不带串并口了。但是呢新出的笔记本上的USB接口是足够用的。因而都想用USB转了串口或者并口就能方便单片机学习开发时的ISP编程或者JTA G仿真了。其实很多单片机开发商和销售商都早就有了USBisp的配套软件和硬件了的,只不过都比较昂贵,而且技术资料多是保密的,对于自己小本学习单片机的人而言不免都希望能与价廉物美的USBISP烧写器,而且也多想自己动手做一个了。 网上公开的比较流行的支持51和AVR的烧写器是用ATMEL公司的MAGE8单片机做的,其机理也就是通过软件编程的方式将USB接口信号转换为并口信号以实现ISP的。其原理图如下图: 使用的是个名叫PROGISP的软件,我收集了制作的相关资料在压缩包中,有兴趣的朋友可以看看或者尝试一下。 但是呢我在这里主要并不是向大家介绍这个MAGE8做的USBISP下载线,因为它的编程软件很强大但是配置太灵活了,对于初学者,很容易配错相关设置,比如AVR的融丝位,弄不好可能将你的AVR单片机锁死了。而且烧入MAGE8的固件有可能不支持51或AVR,找固件比较麻烦。我要向大家推荐的另一种方案是用专门的USB转串口的USB芯片。利用它制作一个U SBISP下载线,而且支持51和AVR系列的单片机,功能算比较强的,电路也并不比MAGE8做的USBISP下载线难多少,只需要在主芯片外接晶振和几个电容电阻就是了。 这个方案就是利用国产的南京沁恒公司的CH341A芯片将USB转为并口直接实现ISP编程。可以去南京沁恒公司网页申请到免费样片(注意要做USB下载线一定要申请CH341A,填写申请表时后缀字母A不能写错了)其电路图如下图:
串口通信基本接线方法要点
串口通信基本接线方法 龚建伟2001.6.20 目次:1.DB9和DB25的常用信号脚说明 2.RS232C串口通信接线方法 3.串口调试中要注意的几点 目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连,以回答前段网友的咨询。 1.DB9和DB25的常用信号脚说明 2.RS232C串口通信接线方法(三线制) 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连 ?同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连; ?两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)
上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接,就能百战 百胜。 3.串口调试中要注意的几点: ?不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接; ?线路焊接要牢固,不然程序没问题,却因为接线问题误事; ?串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; ?强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。
CH340 USB转串口IC 中文资料
USB 转串口芯片CH340 中文手册 版本:1E https://www.360docs.net/doc/ac4203009.html, 1、概述 CH340是一个USB 总线的转接芯片,实现USB 转串口、USB 转IrDA 红外或者USB 转打印口。 在串口方式下,CH340提供常用的MODEM 联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB 总线。有关USB 转打印口的说明请参考手册(二)CH340DS2。 在红外方式下,CH340外加红外收发器即可构成USB 红外线适配器,实现SIR 红外线通讯。 2、特点 ● 全速USB 设备接口,兼容USB V2.0,外围元器件只需要晶体和电容。 ● 仿真标准串口,用于升级原串口外围设备,或者通过USB 增加额外串口。 ● 计算机端Windows 操作系统下的串口应用程序完全兼容,无需修改。 ● 硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps ~2Mbps 。 ● 支持常用的MODEM 联络信号RTS 、DTR 、DCD 、RI 、DSR 、CTS 。 ● 通过外加电平转换器件,提供RS232、RS485、RS422等接口。 ● 支持IrDA 规范SIR 红外线通讯,支持波特率2400bps 到115200bps 。 ● 软件兼容CH341,可以直接使用CH341的驱动程序。 ● 支持5V 电源电压和3.3V 电源电压。 ● 提供SSOP-20和SOP-16无铅封装,兼容RoHS 。 3、封装 封装形式 塑体宽度 引脚间距 封装说明 订货型号 SSOP-20 5.30mm 209mil 0.65mm 25mil 超小型20脚贴片 CH340T SSOP-20 5.30mm 209mil 0.65mm 25mil 超小型20脚贴片 CH340R SOP-16 3.9mm 150mil 1.27mm 50mil 标准的16脚贴片 CH340G
串口通信的接线方法
目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422、RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。 1、DB9和DB25的常用信号脚说明 2、RS232C串口通信接线方法(三线制) 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连; 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口) 图2 上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接,就能百战百胜。 3、串口调试中要注意的几点: 不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接; 线路焊接要牢固,不然程序没问题,却因为接线问题误事;
串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; 强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。 RS232C标准串口接线方法 (第二版) 检验仪器与微机的通讯主要是以RS232C标准接口为主,而串口的接线方法也有一定的标准,在此谈谈几种常用的串口接法,仅作参考: 一、标准接法 1、9对9(包括9针对9孔,9孔对9孔,9针对9针): 说明:以下的孔、针指串口线两端的串口,不过2、3有可能不交换 2-------------3 3-------------2 4-------------6 5-------------5 6-------------4 7-------------8 8-------------7 2、9对25(包括9孔对25孔,9孔对25针) 2-------------3 (备注:2、3有可能不交换) 3-------------2 4-------------6 5-------------7 6-------------20 7-------------5 8-------------4
USB转串口芯片介绍
pl2303原理应用 PL2303符合USB1.1标准,价格3RMB.
2 CP2102/CP2103简介 SiliconLaboratories公司推出的USB接口与RS232接口转换器CP2102/CP2103是一款高度集成的USB-UART桥接器,提供一个使用最小化元件和PCB空间来实现RS232转换USB的简便解决方案。如图1所示,CP2102/CP2103包含了一个USB功能控制器、USB收发器、振荡器和带有全部调制解调器控制信号的异步串行数据总线(UA RT), 采用5 mm×5 mm MLP-28的封装。 CP2102/CP2103作为USB/RS232双向转换器,一方面可以从丰机接收USB数据并将其转换为RS232信息流格式发送给外设;另一方面可从RS232外设接收数据转换为USB数据格式传送至主机,其中包括控制和握手信号。
2.1 USB功能控制器和收发器 2.2异步串行数据总线(UART)接口 CP2102/CP2103UART接口包括TX (发送)和RX(接收)数据信号以及RTS、CTS、DSR、DTR、DCD和RI控制信号。UART支持RTS/CTS、DSR/DTR和X-On /X-Off握手。 通过编程设置UART,支持各种数据格式和波特率。在PC机的COM端口编程设置UART的数据格式和波特率。表1 为其数据格式和波特率。 2.3 内部EEPROM CP2102/CP2103内部集成有1个EEPROM,用于存储由设备制造商定义的USB 供应商ID、产品ID、产品说明、电源参数、器件版本号和器件序列号等信息。USB配置数据的定义是可选的。如果EEPROM没有被OEM的数据占用,则采用表1所示的默认配置数据。注意,对于可能使用多个基于CP2102/CP2103连接到同一PC机的OEM应用来说,则需要专用的序列号。 内部EEPROM是通过USB编程设置的,允许OEM的USB配置数据和序列号可以在出厂和测试时直接写入系统板上的CP2102/CP2103。Cygnal提供了一个专门为C P2102/CP2103的内部EEP-ROM编程设置工具,同时还提供免费的驱动WindowsDLL格式的程序库。这个程序库可将。EEP-ROM编程步骤集成到OEM在制造中进行流水线式测试和序列号的管理的自定义软件中。EEP-ROM的写寿命的典型值为100000次,数据保持时间为100年。为了防止更改USB描述符,应将其锁定。 2.4其他功能 CP2103除上述功能外也可实现RS485接口与USB接口转换功能,CP2103支持4个可按照控制信息定义的GPIO引脚。 3 典型应用电路 3.1 硬件电路设计
串口控件的使用及属性说明
上位机软件,尤其是串口监听软件是我们常用到的工具。这里我讲解一下使用https://www.360docs.net/doc/ac4203009.html, 时,串口控件的使用和串口的配置。 一、认识串口控件,名称SerialPort。 二、串口常用参数说明:
三、代码例程 1、串口配置代码 Sub PortStart() 'SerialPort1.PortName = COMX'计算机串口设置X,是串口号。可以使用下列列表框选择。 SerialPort1.BaudRate = 9600 ‘波特率设置 SerialPort1.DataBits = 8 '数据位设置 SerialPort1.StopBits = StopBits.One '停止位设置 SerialPort1.Encoding = Encoding.UTF8 SerialPort1.DtrEnable = True SerialPort1.ReadTimeout = 500 '超时时间 SerialPort1.NewLine = vbCrLf '行结束符合 End Sub 2、计算机串口读取 Sub GetSerialPortNames() '计算机串口读取 For Each sp As String In https://www.360docs.net/doc/ac4203009.html,puter.Ports.SerialPortNames CompList.Items.Add(sp) ‘CompList是一个下列框控件,这里修改为你的下列框名称 Next CompList.Text = CompList.Items(0) End Sub 3、串口打开 Sub PortOpen() Try SerialPort1.Open()
Call PortStart() Catch ex As UnauthorizedAccessException MsgBox("串口被占用或串口错误!", https://www.360docs.net/doc/ac4203009.html,rmation, "提示!") End Try End Sub 4、串口关闭 Sub PortOpen() Try SerialPort1.Close() Catch ex As Exception MsgBox("串口未打开或串口异常!", https://www.360docs.net/doc/ac4203009.html,rmation, "提示!") End Try End Sub 5、串口读取数据 Sub ComRec() Dim Rxstr As String Try Rxstr = SerialPort1.ReadLine ’读取一个新行 Application.DoEvents() ComTxT.AppendText(Rxstr) ‘读取到的数据添加到文本框中显示Catch e As TimeoutException ’当超时以后,读取串口所有的数据Rxstr = SerialPort1.ReadExisting ComTxT.AppendText(Rxstr) Application.DoEvents() End Try End Sub 6、发送数据 SerialPort.Write,将数据写入串行端口输出缓冲区。
工业控制--串口通讯方法(精)
工业控制--串口通讯方法(WINAPI实现)介绍介绍工业控制领域利用串口和外围设备进行通讯。正文前言:总所周之,利用串口进行数据通讯在在通讯通讯领域重占有着重要的地位。利用RS232-RS485进行数据信号的采集和传递是VC 编程的又一大热点。串口通讯在通讯软件重有着十分广泛的应用。如电话、传真、视频和各种控制等。在各种开发工具中间,VC由于功能强大和灵活,同时也得到了Microsoft的最大支持,所以在一般进行涉及硬件操作的通讯编程重,大都推荐使用VC作为开发工具。然而工业控制串口通讯这个又不同于一般的串口通讯程序,因为控制外围设备传送的大都是十六进制数据(BYTE类型),所以,为了提高程序的运行稳定性,我们在编写程序进行通讯时可以不考虑传送BYTE类型数 据的工作。串口通讯目前流行的方法大概有两种:一是利用Microsoft提供的CMSCOMM控件进行通讯,不过现在很多程序员都觉应该放弃这种方式。二是利用WINAPI函数进行编程,这种编程的难度最高,要求你要掌握很多的API函 数。三是利用现在网络上面提供的一些串口通讯控件进行编写,比如CSerial类等。程序实现:我在经过许多的项目的开发和实践中发现,采用WIN API函数进行串口的开发能够给程序员很大的控件,并且程序运也很稳定。所以我将与串口接触的函数进行封装,然后在各个工程中进行调用,效果还是比较好的,现将各个函数和调用方法列举出来,希望对各位有所帮助。一、设置串口相关工作 #define MAXBLOCK 2048 #define XON 0x11 #define XOFF 0x13 BOOL SetCom(HANDLE &m_hCom, const char *m_sPort, int BaudRate, int Databit, CString parity, CString stopbit { COMMTIMEOUTS TimeOuts; ///串口输出时间超时设置 DCB dcb; ///与端 口匹配的设备 m_hCom=CreateFile(m_sPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL; // 以重叠方式打开串口 if(m_hCom==INVALID_HANDLE_VALUE { AfxMessageBox("设置串口部分,串口打开失败"; /////重叠方式异步通信(INVALID_HANDLE_VALUE)函数失败。return FALSE; } SetupComm(m_hCom,MAXBLOCK,MAXBLOCK; //设置缓冲区memset(&TimeOuts,0,sizeof(TimeOuts; TimeOuts.ReadIntervalTimeout=MAXDWORD; // 把间隔超时设为最大,把总超时设为0将导致ReadFile立即返回并完成操作
测试电脑的串口是否是好的最完整最可靠的方法就是连接一个真实的串口通信线路
测试电脑的串口是否是好的 最完整最可靠的方法就是 连接一个真实的串口通信线 路(总5页) -CAL-FENGHAI.-(YICAI)-Company One1 -CAL-本页仅作为文档封面,使用请直接删除
测试电脑的串口是否是好的最完整最可靠的方法就是连接一个真实的串口通信线路,2 端用相应软件,如串口调试助手之类的,相互发送发送数据,看另外一端是否能正常接收! 当然,也可以简单的单台机器测试,即短接串口的 2、3 两针,用相应软件,如串口调试助手,发送数据,看能否回显发送的数据 串口测试工具使用说明之一——串口调试工具 回复 6|人气 1387|收藏|打印|推荐给版主 分享文章到: ye_w 个人主页给TA发消息加TA为好友发表于:2010-09-30 19:52:48 楼主 使用串口实现网络通讯,不仅仅需要熟悉控制双方的指令和相关的协议,而且还需要善于使用串口测试工具。在串口测试工具中,最常用的就是串口调试工具。这个串口调试工具网络上一大把,大家百度一下就能下载到(包括我逐步发布的调试工具,都不会提供资源,请大家直接去网络上查找),常用的包括:串口调试助手,串口精灵,Comm等。我也一直使用串口调试助手,下面就是用图形并茂的方式来介绍,请大家指出不足,以便共同进步。 串口调试助手,网络上的版本也有不少,我截2个不同版本的图,但本质没有区别 版本一 怎样测试串口和串口线是否正常? 一步:把串口线或者USB转串口线插到计算机上。 二步:打开串口调试助手 接着选择串口,串口线和USB转串口的端口号查看路径: 电脑上--右键--属性--硬件--设备管理器-端口(COM和LPT),点 开端口前面的+号查看即可。 注释:1、USB-SERIAL CH340(COM4)就是USB转串口的端口号 2、通讯端口(COM1)是计算机原来自带的端口号 第三步:设置串口调试助手(见下图) 1、串口:COM4是和串口线或者USB转串口线在上述路径中查看到的端口号。 2、发送的字符/数据:图片上输入的是59,你可以随便输入2位数字。 3、其余设置按照下图。
USB转RS232接口电路
USB转RS232接口电路 与RS232总线的数据传输速率相比,USB的传输速率更快,因此很多计算机的RS232串行接口都被USB接口所替换,但是很多仪器仪表、控制终端、远程终端等设备的接口还是沿用RS232。为解决两个接口之间的转换,设计了USB到RS232接口转换卡。 1、CH341T简介 CH341T是USB总线转接芯片,其引脚排列如图1所示。当CH341T工作在异步串口模式时,CH341T提供串口发送使能、串口接收就绪等交互式的速率控制信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB总线。表1是CH341T芯片各引脚功能说明。 图① 表1
异步串口方式下CH341T芯片的引脚包括:数据传输引脚、硬件速率控制引脚、工作状态引脚、辅助引脚。数据传输引脚包括:TXD 引脚和RXD引脚。串口空闲时TXD和RXD应该为高电平。硬件速率控制引脚包括:TEN#引脚和RDY#引脚。TEN#是串口发送使能,当其为高电平时,CH341T将暂停从串口发送数据,直到TEN#为低电平才继续发送。RDY#引脚是串口接收就绪,当其为高电平时,说明CH341T还未准备好接收,暂时不能接收数据,有可能是芯片正在复位、USB 尚未配置或者已经取消配置、或者串口接收缓冲区已满等。工作状态引脚包括:TNOW引脚和ROV#引脚。TNOW 以高电平指示CH341T正在从串口发送数据,发送完成后为低电平,在半双工串口方式下,TNOW 可以用于指示串口收发切换状态。ROV#以低电平指示CH341T内置的串口接收缓冲区即将或者已经溢出,后面的数据将有可能被丢弃,正常情况下接收缓冲区不会溢出,所以ROV#应该为高电平。 CH341T内置了独立的收发缓冲区,支持单工、半双工或者全双工异步串行通讯。串行数据包括1个低电平起始位、5到9个数据位、1或2个高电平停止位,支持奇校验/偶校验/标志校验/空白校验。CH341T支持常用通讯波特率:50、75、100、110、134.5、150、300、600、900、1200、1800、2400、3600、4800、9600、14400、19200、28800、33600、38400、56000、57600、76800、115200、128000、153600、230400、460800、921600、1500000、2000000等。串口发送信号的波特率误差小于0.3%,串口接收信号的允许波特率误差不小于2%。
串口设置详解
串口设置详解 本节主要讲解设置串口的主要方法。 如前所述,设置串口中最基本的包括波特率设置,校验位和停止位设置。串口的设置主 要是设置struct termios结构体的各成员值,如下所示: #include
三菱_FX系列PLC串口通讯配置方法
WebAccess 与三菱 FX系列PLC串口通讯配置方法 WebAccess三菱FX系列驱动支持以下型号PLC:FX, FX0, FX0N, FX1N,FX2N,FX1S等。FX系列PLC与上位机软件的通讯方式分为:RS232与RS485两种模式,默认通讯参数如下:波特率:9600,数据位:7位,停止位:1位,奇偶校验:偶校验,下面分别从两个方面进行配置说明: 一、RS232方式通讯 通常情况下,三菱FX系列PLC通过编程口(PS/2)与上位机软件进行RS232模式通讯,此时PLC中不需要做特殊配置,只需在WebAccess中将PLC对应的通讯参数匹配即可。步骤如下: 1、添加通讯端口 图1 添加通讯端口 数据流控(Flow Control):Rts、Dtr握手协议 当使用RS232/RS485转换器进行通讯连接时,数据流控信号将根据该转换器的流 控功能来决定。有些RS232/RS485转换器不需要软件做任何类型的握手协议,而有些 则需要软件进行Rts信号握手协议。强烈建议用户选择具有自动流控的RS232/RS485 转换器。 2、添加设备
图2 设备参数配置 单元号:实际PLC的串行地址号,即Device ID。单个PLC可以默认0进行通讯。 3、添加IO点 根据下图中的“参数”栏选择合适的参数类型(模拟量、数字量)和相应的转换代码。 图3 添加IO点
表1
二、RS485方式通讯 为便于远距离通讯,三菱FX2N系列PLC通过FX2N-485-BD模块实现RS485方式与WebAccess软件通讯,安装FX2N-485-BD需设置PLC的D8120寄存器,请参照《FX通讯用户手册》。FX2N-485-BD通讯模块如下图: FX2N-485-BD模块安装位置图: 图4 FX2N-485-BD模块及接线图 (1)三菱PLC配置方法步骤 1、FXGP/WIN-C编程软件配置方法 使用FXGP/WIN-C编程软件来进行串行口设置。用SC-09编程电缆连接电脑与PLC,在“PLC”下拉菜单中选择“串行口设置(D8120)” 图5 FXGP/WIN-C编程软件串口通讯参数配置 如下图所示,在“硬件”下拉框中选择“RS-485”,在“控制线”下拉框中选择“H/W mode”。
Linux串口打印设置
一、基于VM虚拟机linux系统串口配置 配置分为虚拟机下配置及linux系统下minicom配置两部分。 虚拟机模块配置如下: 打开虚拟机配置界面。 选择Edit virtual machine settings。进入配置界面。
选择Add…按钮,添加相关的设备文件。
选中串口选项后继续选择下一步。
此处选择”使用主机上的物理串口设备”选项,继续下一步。此处我们选择文件。 对于物理串口选项,此处可以采用自动检测选项。如果下来菜单中有对应于串口的端口号,则可以选择。注意,对于设备状态,要确保选中“connect at power on“,即,上电连接状态。至此,虚拟机端串口配置完毕。 注意:此处我们串口添加成功后默认未COM2.
Linux下串口配置及使用。 Linux下一般使用minicom来作为串口数据输入输出的终端。类似于Windows下的超级终端。虚拟机下配置完毕后,进入Linux系统中,在Shell 终端下输入minicom -s即可配置串口终端。配置完成后执行minicom启动串口终端。 在终端界面下完成相关的参数配置并保存后,启动终端设备,即可在minicom中观察到数据输出。 <四>Minicom的使用 (1)minicom界面介绍 第一次运行minicom,启动minicom要以root权限登录系统,需要进行minicom的设置,输入下了命令#minicom –s,显示的屏幕如下所示,按
上下光标键进行上下移动选择,我们要对串行端口进行设置,因此选中 Serial port setup,然后回车: __[configuration]─-─—┐//配置 │ Filenames and paths │//文件名和路径 │ File transfer protocols│//文件传输协议 │ Serial port setup │//串行端口设置 │ Modem and dialing │//调制解调器和拨号 │ Screen and keyboard │//屏幕和键盘 │ Save setup as dfl │//设置保存到 │ Save setup as.. │//储存设定为 │ Exit │//退出 │ Exit from Minicom │//退出minicom └──────────┘ (2)minicom的参数设置 选中设置串行端口,点击回车后,弹出设置的界面如下: 点击”A”设置串行设置为/dev/ttyS1,这表示使用串口2(com2),如果是 /dev/ttyS1则表示使用串口2(com 2).按”E”键进入设置”bps/par/Bits”(波 特率)界面,如下图所示。再按”I”以设置波特率为115200,点”F”键硬 件流控制设置为NO,回车 最终的设置结果如下,然后回车返回到串口设置主菜单中 │A-Serial Device(串口设备): /dev/ttyS1 │B-Lockfile Location(锁文件位置): /var/lock │C-Callin Program(调入程序): │D-Callout Program(调出程序): │E-Bps/Par/Bits(): 115200 8N1 │F-Hardware Flow Control(硬件数据流控制): No │G-Software Flow Control(软件数据流控制): No 二、Linux 标准输入输出重定向到串口指南 设置linux 系统的标准输入输出到com2(console 口),以便维护人员 在无网络、无显示器的情况下对系统维护。在各文件(/etc/grub.conf、 /etc/inittab、/etc/securetty)中添加红色部分!文件修改完成后 reboot 系统即可在com2 口看到标准输入输出信息。
基于PL2303的USB转串口制作(精)
基于PL2303的USB转串口制作 串口模块USB转TTL模块DVD升级路由/MODEN等刷机线STC单片机程序下载其它串行通迅领域. (东西虽小用途却很广泛 对于一些学校、工业、科研客户来说,电脑的串口非常重要,很多设备都采用串口和电脑端软件配接,很多电路模块可以非常直观方便地利用串口调试软件进行调试,很多仪器必须通过串口进行通讯和数据交换。 但是目前笔记本电脑因为空间的限制和其他方面考虑的原因都没有串口,甚至一些台式电脑也取消了串口配置,这让我们迫切需要串口的客户非常苦恼。 USB转串口模块全称为USB to Serial port Module,它可以实现将USB接口虚拟成一个串口解决客户无串口的苦恼。现在市面上的USB转串品的设备可谓是琳琅满目,质量也是参差不齐。造成这种现象的根本原因就在于控制芯片的不同。现在USB转串口桥接芯片有很多,比如CP2102、FT232、PL2303等等。但并非每一种芯片都可以用作ISP下载。经过测试CP2102是不能下载的,而FT232可以下载,但其价格实在不菲。最为适中的就是台湾生产的PL2303,可以稳定下载,并可以支持多种操作系统。 PL2303HX采用28脚贴片SOIC封装,工作频率为12MHZ,符合USB 1.1通信协议,可以直接将USB信号转换成串口信号,波特率从75~1228800,有22种波特率可以选择,并支持5、6、7、8、16共5种数据比特位,是一款相当不错的USB转串口芯片。 PL2303模块可以方便地利用杜邦免焊接连接线接入电路,只要插接3根线,一根串口入、一根串口出、一根地线。 用途: 1、STC单片机程序下载 2、单片机/开发板串口通讯实验
路由器串口配置命令
路由器串口配置命令 https://www.360docs.net/doc/ac4203009.html,2002-12-11保存本文推荐给好友QQ上看本站收藏本站 1. async mode 设置异步串口的建立链路方式。 async mode { dedicate | interactive } 【缺省情况】 异步串口的缺省建立链路方式为直接方式(dedicate)。 【命令模式】 串口配置模式 【使用指南】 异步串口可以有两种建立链路方式: 直接方式(Dedicate):拨号成功之后,直接采用链路层协议配置参数建立链路。 交互方式(Interactive):拨号成功之后,主叫方向对端发送配置命令(与用户从远端手工键入配置命令效果相同),设置对端的链路层协议工作参数,然后建立链路。 比较常用的是直接方式,但在与同样支持交互方式的路由器(如Cisco路由器等)互连时,采用交互方式显得更为灵活。 交互方式一般与外接Modem以及Modem Script共同使用。 【举例】 设置异步串口建立链路采用交互方式。 Quidway(config-if-Serial0)#async mode interactive 【相关命令】 modem,chat-script 2. baudrate 设置串口的波特率。
baudrate baudrate 【参数说明】 baudrate为串口的波特率,单位为bps,取值范围300~4096000。 【缺省情况】 异步串口的缺省波特率为9600bps,同步串口的缺省波特率为64kbps。 由于同异步支持的波特率范围不同,当进行同异步切换时,如果现工作方式不支持原波特率,则将波特率修改为现工作方式下的缺省波特率。 【命令模式】 串口配置模式 【使用指南】 异步串口支持的波特率有: 300bps 600bps 1200bps 4800bps 9600bps 19200bps 38400bps 57600bps 115200b 同步串口支持的波特率有: 1200bps 4800bps 9600bps 19200bps 38400bps 57600bps 115200bps 56000bps 64000bps 72000bps 128000bps
Linux--串口操作及设置详解
串口操作需要的头文件 #include /*标准输入输出定义*/ #include /*标准函数库定义*/ #include /*Unix 标准函数定义*/ #include #include #include /*文件控制定义*/ #include /*PPSIX 终端控制定义*/ #include /*错误号定义*/ 1.打开串口 在前面已经提到linux下的串口访问是以设备文件形式进行的,所以打开串口也即是打开文件的操作。函数原型可以如下所示: int open(“DE_name”,int open_Status) 参数说明: (1)DE_name:要打开的设备文件名 比如要打开串口1,即为/dev/ttyS0。 (2)open_Status:文件打开方式,可采用下面的文件打开模式: O_RDONLY:以只读方式打开文件 O_WRONLY:以只写方式打开文件 O_RDWR:以读写方式打开文件 O_APPEND:写入数据时添加到文件末尾 O_CREATE:如果文件不存在则产生该文件,使用该标志需要设置访问权限位mode_t O_EXCL:指定该标志,并且指定了O_CREATE标志,如果打开的文件存在则会产生一个错误 O_TRUNC:如果文件存在并且成功以写或者只写方式打开,则清除文件所有内容,使得文件长度变为0 O_NOCTTY:如果打开的是一个终端设备,这个程序不会成为对应这个端口的控制终端,如果没有该标志,任何一个输入,例如键盘中止信号等,都将影响进程。 O_NONBLOCK:该标志与早期使用的O_NDELAY标志作用差不多。程序不关心DCD信号线的状态,如果指定该标志,进程将一直在休眠状态,直到DCD信号线为0。 函数返回值: 成功返回文件描述符,如果失败返回-1 例如:
(完整word版)MOXA串口服务器设置步骤
串口服务器设置 MOXA的串口服务器设置可以通过网络或MOXA提供的专用设置软件:NPort Administrator来设置,所有设备的默认IP地址是:192.168.127.254。我们的设备的操作模式可以提供Real COM,TCP Server,TCP Client,UDP等操作模式,本公司的上位机软件主要支持TCP Server 和Real COM模式,下面是设备如何设置这两种模式的方式。 TCP Server 模式设置 1、通过网络来设置 一、确认上位机IP地址 首先确认上位机的IP地址,在电脑:开始—运行输入cmd 按确定后出现下面对话框,在对话框中输入ipconfig 按回车键出现下面对话框
上图显示本机的IP地址是:192.168.1.22 二、通过IE来设置 1、添加IP 在网上邻居—右键—属性—本地连接—右键—属性—常规—双击协议(TCP/IP)出现下面对话 点击右下角高级出现下面对话框
在IP地址栏里点击添加出现下面对话框 在对话框中输入IP地址,我输入的是:192.168.127.200 在IE里输入IP地址:192.168.127.254 就出现下面界面
在Network Settings里设置IP地址,改成:192.168.1.254,因为我本机是192.168.1.22,所以要改成同一网段内,设置好后点击Submit
设置串口设备的波特率等参数,点击Submit 设置操作模式,本次在Operation mode右边的下拉列表选择TCP Server Mode 模式,设置端口号,设备默认端口号是4001,设置好后点击Submit
串口通讯方法的三种实现
串口基本信息 用一台电脑实验串口自发自收,实验前要将串口(以9针为例)的发送引脚(2脚)和接受引脚(3脚)短接。 三线连接:适用于计算机之间尤其是PC机和单片机之间的数据通信。其连接信号对为(TxD,RxD)、(RxD,TxD)、(SG,SG)。即发送数据TxD端和接受数据RxD端交叉连接,信号地SG对应连接。 七线交叉连接:适用于同型号的计算机之间的连接,如PC机间的数据通信。其连接信号对为:(TxD,RxD)、(RxD,TxD)、(SG,SG)、(RTS,CTS)、(CTS,RTS)、(DSR.DTR)、(DTR,DSR)。其中,TxD、RxD、SG与前面信号的含义相同,RTS为请求发送,CTS为准许发送,DSR为数据装置准备好,DTR为数据终端准备好。在本地连接的微机系统中,RTS、CTS、DTR、DSR用作硬件联络控制信号。 目前使用的串口连接线有DB9和DB25两种连接器,用户可以国家使用的具体机器选择相应的连接器。 一个串口通讯类在https://www.360docs.net/doc/ac4203009.html,/network/serialport.shtml。 PC机的RS-232接口的电平标准是-12V标示“1”,和+12V表示“0”,有些单片机的信号电平时TTL 型,即大于2.4v表示“1”,小于0.5v表示“0”,因此采用RS-232总线进行异步通信是,发送端和接受端要有一个电平转换接口。 串口通讯方法的三种实现 串口是计算机上一种非常通用的设备通信协议。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS一232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 串口通信(Serial Communication),是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。串口通信方便易行,应用广泛。在Windows应用程序的开发中,我们常常需要面临与外围数据源设备通信的问题。计算机和单片机(如MSC—51)都具有串行通信口,可以设计相应的串El通信程序,完成二者之间的数据通信任务。 1串口通讯原理 串口通信的原理非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。 典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其它线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。 2串口通讯实现 在.net平台下使用C#语言实现串口通信的方法主要有三种:第一种方法是采用VB6.0中提供的MSComm控件,这种方法编程简单.但MSComm控件在使用前需要在系统中注册;第二种方法是采用微软在.net2.0及其以后版本提供的内置的串口操作类--System.IO.SerialPort,使用简单,但欠灵活;第三种方法是Windows的API函数,虽然编程难度高,但这种方法可以清楚地掌握串口通信的机制,并且高效、自由、灵活。 无论那种采用方式实现串口通讯,都需要通过以下四个步骤来完成: 1)打开串口 MSComm控件是通过设置PortOpen属性值来打开和关闭串口.具体语法为:MSComm. PortOpen=True/False. SerialPort类则是调用类的Open()和Close()方法来实现串口的打开和关闭。 API函数是通过CreateFile来打开串口.因为在Win32系统中,串口被看作一个文件,使用与文件相同的操作方式进行操作。 2)配置串口