rs232协议编程文档格式.docx
- 文档编号:3683064
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:9
- 大小:21.33KB
rs232协议编程文档格式.docx
《rs232协议编程文档格式.docx》由会员分享,可在线阅读,更多相关《rs232协议编程文档格式.docx(9页珍藏版)》请在冰点文库上搜索。
2.1.1电气特性................................................18
2.1.2连接器的机械特性........................................20
2.1.3Rs-232的接口信号........................................22
2.2远距离通信.................................................26
2.2.1采用modem(dce)和电话网通信时的信号连接....................26
2.2.2采用专用电话线通信.......................................28
2.3近距离通信.................................................28
2.3.1零modem的最简单连线(3线制)............................29
2.3.2零modem标准连接........................................30
3设计过程.....................................................32
3.1串行通信材料................................................32
3.1.1串行通信端口............................................32
3.1.2串口通信线..............................................32
3.2总体设计概念与功能描述.......................................34
3.2.1总体设计概念............................................34
3.2.2字节传输................................................35
3.2.3文本文件传输............................................36
4设计成果与运行过程..........................................38
4.1实时信息交互功能............................................38
4.2文本和文件的传输............................................47
5总结.........................................................82
0引言
在各种单片机应用系统设计中,如智能仪器仪表、各类手持设备、gps接收器等,都会遇到怎样与pc机进行通讯的问题。
在数据量不大、传输速率要求不高的情况下,一般都采用串行通讯方式,即通过与pc机配置的Rs-232标准串行接口com1、com2等相连接来实现应用系统与pc机之间的数据交换。
例如南天加密键盘,它是南天自主开发的新产品,采用扫描式16键金属键盘,用单片机与des芯片实现管理和控制,通过Rs232通讯口与pc机相连。
它是针对南天自助产品而研制的,可对键盘敲入的键码加密,以密文形式送到pc机,确保通信过程中的数据加密,有效地保护键盘交易信息的安全。
本课题以计算机科学与技术专业的理论知识为基础,以计算机通信技术为支撑,在全面掌握计算机通信基本理论和基本技术的基础上,利用Rs—232接口接口规范,设计与实现一个计算机通信系统。
串口通讯作为一种古老而又灵活的通讯方式,被广泛地应用于pc间的通讯以及pc和单片机之间的通讯之中。
提到串口通讯的编程,人们往往立刻想到c、汇编等对系统底层操作支持较好的编程语言以及大串繁琐的代码。
实际上1992年crescentsoftwareinc.公司专为Vb设计了mscomm.Vbx用户通信控件,它提供了通过串口发送和接收数据的串行通信能力,不但包括了全部windowsapi中关于串行通信的16个函数所完成的功能,而且开拓了更多的使用户设计方便的对象属性来满足不同用户不同业务的需
求。
所以只要我们借助相关activex控件的帮助,即使是在底层操作一向不被人看好的Vb中,一样能够实现串口通讯,甚至其实现方法和c、汇编相比,要更加快捷方便。
这也是为什么我们这次设计所用的编程工具是Vb6.0。
通过这些控件能实现两台计算机之间的串行通信其中包括字节,文本,文件等信息。
1理论背景
1.1串口通讯的概念及接口电路
随着计算机系统的应用和微机网络的发展,通信功能越来越显的重要。
这里所说的通信是只计算机与外界的信息交换。
因此,通信即包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换。
由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输。
对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍。
在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各cpu之间的通信一般都是串行方式。
所以串行接口是微机应用系统常用的接口。
许多外设和计算机按串行方式进行通信,这里所说的串行方式,是指外设与接口电路之间的信息传送方式,实际上,cpu与接口之间仍按并行方式工作。
图1.1串行通信传输位
串行通信的概念
所谓“串行通信”是指外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。
这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。
由于cpu与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有“接收移位寄存器”(串→并)和“发送移位寄存器”(并→串)。
典型的串行接口的结构如图1.2所示。
图1.2典型的串行接口的结构
在数据输入过程中,数据一位一位地从外设进入接口的“接收移位寄存器”,当“接收移位寄存器”中已接收完1个字符的各位后,数据就从“接收移位寄存器”进入“数据输入寄存器”。
cpu从“数据输入寄存器”中读取接收到的字符。
(并行读取,即d7~d0同时被读至累加器中)。
“接收移位寄存器”的移位速度由“接收时钟”确定。
在数据输出过程中,cpu把要输出的字符(并行地)送入“数据输出寄存器”,“数据输出寄存器”的内容传输到“发送移位寄存器”,然后由“发送移位寄存器”移位,把数据一位一位地送到外设。
“发送移位寄存器”的移位速度由“发送时钟”确定。
接口中的“控制寄存器”用来容纳cpu送给此接口的各种控制信息,这些控制信息决定接口的工作方式。
“状态寄存器”的各位称为“状态位”,每一个状态位都可以用来指示数据传输过程中的状态或某种错误。
例如,用状态寄存器的d5位为“1”表示“数据输出寄存器”空,用d0位表示“数据输入寄存器满”,用d2位表示“奇偶检验错”等。
能够完成上述“串并”转换功能的电路,通常称为“通用异步收发器”(uaRt:
universalasynchronousReceiverandtransmitter),典型的芯片有:
intel8250/8251,16550。
1.2传输速率与传输距离
1.2.1波特率
在串行通信中,用“波特率”来描述数据的传输速率。
所谓波特率,即每秒钟传送的二进制位数,其单位为bps(bitspersecond)。
它是衡量串行数据速度快慢的重要指标。
有时也用“位周期”来表示传输速率,位周期是波特率的倒数。
国际上规定了
篇二:
如何编写Rs232的串行通讯软件
通讯:
不同的独立系统经由线路互相交换数据
网络:
整个通讯的线路
交换信息的系统若为计算机系统,则称之为计算机网络通讯
通讯的目的是数据的交换
传送端:
就是将数据经由一定的程序与线路传送出去
接收端:
依照协议好的方式将数据收集起来并存储或显示在画面上。
通讯的主要目的在于将数据从某端传送到另一端,实现数据的交换。
一个完整的通讯系统包括传送端、接受端、转换数据的接口及传送数据的实际信道或媒体。
数据终端设备:
dataterminalequipmentdte:
传送与接收的节点
数据交换设备:
dataswitchingequipmentdse:
数据通讯设备datacommunicationequipment、dce:
负责数据与电气讯号转换的设备
通讯的种类及比较:
通讯分为并行传输的通讯(parallelcommunication),:
一次传输量为8个位,一个字节;
串行传输式的通讯(serialcommunication):
一次只能传输一个位
(rs232协议编程)有Rs232通讯
Rs485.通讯:
这个适合工业使用;
usb界面:
universalserialbus;
通用串行总线:
ieee1394:
传输速度比usb的传输速度要高很多。
1.3串行通讯讯号定义与字码:
在Rs232的规范中,电压在+3v到15V(一般使用6V)之间成为“0”,一般用途是作为on,电压在-3V到-15V(一般使用-6V)之间成为“1”,一般用途是作为off.有时侯以“high”或“low”表示。
以Rs232来说:
讯号要被传送,个人计算机的讯号采集卡等装置,其低电位是0.7V以下。
高电位在2.1V以上。
由于两部计算机之间的讯息传递是在一连串的高低电平准位之间进行的,每一个电压准位可以当成一个状态,这个状态坑内是0,也可能是1.计算机里面将每一个0或1称作一个位,而8个位则形成一个字节。
将8个字节合起来后,会共有256种数值。
值从0到255.而在计算机中有一个ascii吗,将这256种组合情况分别代表256中字符或句柄;
而通讯的进行便是这256个字符或句柄的交换。
键盘上的按键大部分是可见的,这些字符集中在ascii,码的前128,而超过ascii128的字符时不可见字符。
在我们的个人计算机屏幕上是看不到的,此部分的字符有成为二进制数据。
比如所传输的字节的电位讯号:
01001100,是以二进制的形式表示的,它会是16位的4c,也就是10进制的76,照ascii码对照表,寻找的话,可以发现代表的字符是l。
脚位意义与方向
串行通讯:
可以分为同步式synchronous,与异步式asynchronous。
同步式:
在通讯的两端使用同步讯号作为通讯的依据,而异步式则使用起始位(startbit)及停止位(stopbit)作为通讯的判断。
现在使用的多是异步传输,使用9支脚就够用了。
如果采用同步传输则使用25个脚。
pin9Ri响铃侦测(ringindicator)
Rs232,9脚定义如上
Rs232的每一支脚位都有它的功用,也有它讯号流动的方向
1:
cd:
此脚位是由调制解调器控制,当电话接通之后,传送的讯号是载在载波讯号上面,调制解调器利用此脚位通知计算机有载波被侦测到,(即表示现在是在线上,online);
而载波被侦测到时才可保证此时是处于联机的状态;
若计算机为收到此信号,均会响应信息,并将modem挂线(hangup)
2;
Rxd:
此脚位会将远程所传送过来的数据接收进来,在接收的过程中,由于数据是以数字形式传送,读者可以再modem的Rxd的、灯号上看到明灭交错,此即为0、1交替所产生的现象,也就是电位高低所产生的现象
3:
此脚位将计算机所欲传送出去的数据传送出去,在传送的过程中,由于数据是以数字型式传送,读者可以再modem的txd灯号上看到明灭交错,此即为0、1交替所产生的现象,也就是电位高低所产生的现象。
篇三:
基于modbus通信协议的rs232通信
一、实现基于modbus协议Rs232点到点通信。
要求说明程序实现的功能和设计思想、主要的程序流
程图,以及带必要注释的源程序。
注:
是pc机对pc机,要求在windows下编程不得使用通信控件,使用多线程实现通信的收发
一、程序实现功能
本题采用的是pc机的com1口进行通信。
首先将com1口收发对接对接。
然后定义了串口类和modbus类。
类都是一样的,然后在mFc对话框下编写人机交互程序.程序实现基于modbus协议的Rs232点到点通信,程序具有差错校验和帧丢失重传功能。
程序可以自由配置串口通信参数、输入设备地址、功能码和发送数据,显示发送的modbus帧,显示并解析接收到的modbus帧,取出应用数据。
对异常响应、丢失帧进行重传处理。
二、程序设计思想
基于modbus协议的串口通信程序,使主站能请求访问其它相联的从站设备,并能回应来自其它设备的请求,以及能侦测错误并记录,从站近地址识别主站发来的消息,决定要产生怎么的行动,若需要回应,从站还将生成反馈信息,并用modbus协议发出。
modbus通信协议是一种串行的主从通信协议,网络里仅有一台设备可作为主机(称master),其它设备作为从机(称slaver),主机不需编号,从机必须编号。
协议定义了主机查询及从机应答的信息帧格式。
通信时,主机首先向从机发出请求信息,符合相应地址码的从机接收通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务,然后把执行结果返送给主机。
若从机接收到的校验码与本机计算的不同,则说明数据在通信过程中出现错误,从机把这次请求视为无效,功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。
当主机收到这一信息时,会重新发送请求信息。
校验方式分为lcR(传送数据为ascii时)校验或cRc(传送数据为二进制时)校验,这里采用lRc校验方式。
信息传输为异步方式,并以字节为单位。
modbus协议可支持ascii码或二进制格式的数据传输。
acsii码方式下每一个字节数据分两个字节传送,二进制方式下用一个字节传送,为了利于上位机的编程选acsii码数据方式。
网络上的设备连续监测网络上的信息,包括静止时间。
ascii消息帧
modbus消息帧,在ascii模式,modbus消息帧包括地址域、功能码、数据域以及差错校验域。
地址域,在modbus串行链路上,地址域只含有从站地址。
消息帧的地址域包含两个字符(ascii)。
有效的从站地址是0--247(十进制)。
单个从站的地址范围是1--247。
主站通过将要联络的从站的地址放入消息中的地址域来选定从站。
当从站发送回应消息时,它把自己的地址放入回应的地址域中,以便主站知道是哪一个从站作出回应。
地址0是用作广播地址,以使所有的从站都能识别。
功能码域,消息帧中的功能代码域指示从站进行何种操作,包含了两个字符(ascii)。
可能的代码范围是十进制的1--255。
当然,这些代码分为公共功能码、用户定义的功能码以及保留功能码。
当消息从主站发往从站时,功能代码域将告之从站需要执行哪些动作。
例如去读取输入的开关状态,读一组寄存器的数据内容,读从设备的诊断状态,允许调入、记录、校验在从设备中的程序等。
当从站回应时,它使用功能代码域来指示是正常响应还是异常响应。
对于正常响应,从站的响应功能码与请求功能码相等。
对于异常响应,从站的功能代码等于请求功能码的最高位置1。
数据域,modbus消息帧中的数据域主要是包含了请求和响应参数。
主站发给从站消息的数据域包含信息为:
从站必须用于执行由功能代码所定义的动作。
这包括了读取线圈、离散量输入的起始地址、读取的数量等。
如果没有错误发生,从站返回的响应数据域内包含请求的数据,如果有错误发生,则响应数据域内为异常码,告诉主站异常的原因。
错误检测域,标准modbus串行链路的安全性有两种错误检测方法,根据传输模式的不同而不同,当传输模式采用ascii,采用纵向冗余校验方法(lRc)对消息内容计算后,可知错误检测域包含两个ascii字符,不包括开始的冒号符以及回车换行符。
lRc方法是将消息中的8bit的字节连续累加,丢弃了进位。
标准的modbus串行网络采用两种错误检测方法,奇偶校验对每个字符都可用,帧检测(lRc或cRc)应用于整个消息.它们都是在消息发送前由主设备门产生的,从设备在接收过程中检测每个字符和整个消息帧.
三、程序流程图
1.modbus主从站消息查询/响应流程
2.主程序流程图
图1程序主流程图
程序界面中可以输入串口参数,在“打开串口”按键下,同样配置了默认的串口参数,在“配置串口”按键下,若串口没有打开,程序会先打开串口,再配置参数。
3.接收、发送数据流程
图2接收线程程序流程图
4.串口通信类cserialport流程图图3发送线程程序流程图
图4串口类线程程序流程图四、源程序
1.串口类的定义(cserialport.h)#ifndef__seRialpoRt_h__
#define__seRialpoRt_h__
#definewm_comm_bReak_detected#definewm_comm_cts_detectedstate.
#definewm_comm_dsR_detectedstate.
#definewm_comm_eRR_detected#definewm_comm_Ring_detected#definewm_comm_Rlsd_detectedsignalchangedstate.
#definewm_comm_RxchaR
theinputbuffer.wm_useR+1//abreakwasdetectedoninput.wm_useR+2//thects(clear-to-send)signalchangedwm_useR+3//thedsR(data-set-ready)signalchangedwm_useR+4//aline-statuserroroccurred.line-statuswm_useR+5//aringindicatorwasdetected.wm_useR+6//theRlsd(receive-line-signal-detect)wm_useR+7//acharacterwasreceivedandplacedinerrorsarece_FRame,ce_oVeRRun,andce_RxpaRity.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- rs232 协议 编程