PC机串口通信的工作原理
- 格式:docx
- 大小:56.03 KB
- 文档页数:12
串⼝通信实验报告基于Labwindows/CVI的串⾏通信接⼝实验报告⼀、实验⽬的通过软件Labwindows/CVI编写仪器⾯板,通过该⾯板实现计算机与外围设备的串⼝通信。
设置好通信端⼝,波特率等参数后,在Text Box控件中输⼊数据字符,当点击发送按钮时,单⽚机开发箱中的指⽰灯发⽣相应的变化。
仪器⾯板如下图所⽰。
⼆、实验器材PC机⼀台,单⽚机开发箱,220V交流电源,Labwindows/CVI软件,导线若⼲等。
三、实验原理由于LabWindows/CVI提供了⼤量与外部代码或软件进⾏连接的机制,所以实现串⼝通信,可以使⽤其本⾝提供的RS⼀232函数库。
1.RS—232函数库RS—232函数库提供了各种⽅式的串⼝通信控制函数和I/O函数,包括:打开/关闭函数;I/O读写函数;调制解调器控制函数;串⼝设置函数;寄存器状态函数;回调函数等。
(1) 打开/关闭函数:OpenCom,OpenComConfig和CloseComo。
(2) I/O读写函数:总计有7组函数,以下为其中常⽤的四组:1) ComRd:从串⼝的接收缓冲区读指定长度的字符;2) ComRdByte:从串⼝的接收缓冲区读取⼀个字符;3) ComWrt:向串⼝的输出缓冲区中写指定长度的字符;4) ComWrtByte:向串⼝的输出缓冲区中写⼀个字符。
(3) Xmodem函数:它使⽤了⼀种包含出错检测的⽂件传输协议进⾏串⼝通信。
在这种协议中,⽂件通过信息包来传送,信息包中不仅包括了⽂件中的数据,还包括了校验和同步信息。
(4) 串⼝控制函数:总计有7组函数,以下为其中常⽤的四组:1)SetComTime:设置I/O操作超时的时间限制;2)SetCTSMode:禁⽌或允许硬件握⼿并设置硬件握⼿⽅式;3)FlushlnQ/FlushOutQ:清空输⼊/输出队列。
(5) 状态函数:主要包括端⼝状态信息和通信错误代码信息等。
(6) 回调函数InstallComCallback:为指定的串⼝安装回调函数。
单片机与PC机通信1. 引言随着物联网的发展,单片机在各个领域中的应用越来越广泛。
在许多场景中,单片机与PC机的通信是必不可少的。
本文将介绍单片机与PC机通信的原理、常用的通信方式,以及如何实现单片机与PC机的通信。
2. 通信原理单片机与PC机通信的原理是通过串行通信实现的。
串行通信是一种逐位传输数据的通信方式,数据的传输速率较低,但占用的引脚少,适合单片机与PC机之间的通信。
3. 通信方式单片机与PC机之间的通信方式有多种,常见的方式包括:- 串口通信:使用串口通信可以方便地实现单片机与PC机之间的数据传输。
串口通信需要通过串口线连接单片机和PC机,单片机通过串口发送数据,PC机通过串口接收数据。
- USB通信:通过USB接口连接单片机和PC机,可以实现高速的数据传输。
USB通信需要使用USB转串口模块或者USB转串口芯片来实现。
- 以太网通信:通过以太网接口连接单片机和PC机,可以实现远程的数据传输。
以太网通信需要使用以太网模块或者以太网芯片来实现。
4. 实现单片机与PC机通信的步骤下面将介绍如何实现单片机与PC机的通信。
以串口通信为例,步骤如下:4.1. 硬件连接首先,需要通过串口线连接单片机和PC机。
单片机的串口引脚连接到串口线的发送端和接收端,PC机的串口引脚连接到串口线的接收端和发送端。
确保连接正确可靠。
4.2. 单片机程序编写在单片机上编写程序,使其能够通过串口发送数据给PC机。
根据单片机的型号和开发平台,选择相应的串口通信库或者使用底层的串口驱动程序来实现串口通信功能。
4.3. PC机程序编写在PC机上编写程序,使其能够通过串口接收来自单片机的数据。
根据PC机的操作系统和编程语言,选择相应的串口通信库或者使用底层的串口驱动程序来实现串口通信功能。
4.4. 通信测试与调试编写完成的单片机程序和PC机程序可以进行通信测试与调试。
首先确保单片机和PC机之间的连接没有问题,然后运行单片机程序和PC机程序,观察数据的发送和接收情况。
串口的基本原理串口是一种用于在设备之间进行数据传输的通信接口。
它是一种基于串行数据传输的通信方式,与并行通信相对。
串口使用一根线缆进行数据传输,其中包含一个发送线和一个接收线。
数据以一个位一个位地顺序传输,称为串行传输。
在串口通信中,数据从发送方通过发送线逐位发送,然后通过接收线逐位接收到接收方。
串口通信涉及以下几个基本原理:1. 通信协议:串口通信需要使用一种协议来规定数据的传输格式和通信规则。
常用的串口通信协议包括RS-232、RS-485、USB等。
协议规定了数据的起始位、数据位、校验位和停止位等信息。
2. 波特率:波特率是指每秒钟传输的位数,用来衡量串口通信的速度。
波特率越高,传输速度越快,但也需要更高的硬件要求。
发送方和接收方必须使用相同的波特率才能正常通信。
3. 校验位:校验位用于检测数据传输是否出错。
常用的校验方式包括奇偶校验、偶校验和无校验。
接收方通过校验位验证数据的准确性,并在发现错误时进行纠正或报告。
4. 数据流控制:数据流控制用于管理数据的发送和接收,以避免数据传输过程中的数据丢失或冲突。
常用的数据流控制方式包括硬件流控制和软件流控制。
5. 缓冲区:串口通信中的发送方和接收方都使用内部缓冲区来管理数据传输。
缓冲区用于临时存储待发送或接收的数据,以便在合适的时间进行数据传输。
需要注意的是,串口通信需要发送方和接收方的硬件和软件支持,如串口芯片、驱动程序等。
在编程时,可以使用特定的串口通信库或API来控制串口的打开、读取和写入操作。
总的来说,串口通信通过顺序传输数据位,结合通信协议、波特率、校验位、数据流控制等技术,实现设备之间的数据传输。
这使得串口通信在许多领域中广泛应用,如嵌入式系统、工业自动化、通信设备等。
串行口工作原理
串行口是一种用于数据传输的硬件接口,它可以将数据逐个比特地传输。
串行口工作的基本原理是将需要传输的数据按照一定的规则进行分割,并以连续的比特序列的形式进行传输。
在串行口的工作过程中,数据被分成一个个比特,然后按照事先约定好的规则,依次传输给接收端。
这个规则包括了每个比特的位宽、传输的顺序以及同步的方式等等。
通常情况下,串行口使用的是异步传输方式,也就是说,传输时不需要事先进行时钟同步,而是在数据的起始位置插入起始位和校验位来提供同步信息。
在串行口的数据传输过程中,发送端按照一定的时序将数据比特逐个发送给接收端。
接收端按照相同的时序依次接收每个比特,并通过解码、校验等操作恢复原始数据。
为了保证数据的准确性,通常还会在传输过程中加入差错检测和纠错机制,例如CRC校验等。
串行口的工作原理与并行口不同,串行口通过逐个比特的方式传输数据,相比之下,串行口在传输速率上可能会受到一定的限制。
但是串行口的传输距离相对较长,传输线路简单,而且可以灵活选择传输速率,因此在许多应用场景下得到了广泛的应用。
例如,在计算机、通信设备、工业自动化等领域中,串行口被广泛用于连接外部设备与主机进行数据交互。
实验6 单片机与PC机间的串行通信一、实验目的1、掌握电平转换器件RS-232的使用方法;2、掌握Proteus VSM虚拟终端(VITUAL TERMINAL)的使用;3、掌握单片机与PC机间的串行通信软硬件设计方法。
二、实验内容实现利用虚拟终端仿真单片机与PC机间的串行通信。
PC机先发送从键盘输入的数据,单片机接收后回发给PC机。
单片机同时将收到的30~39H间的数据转换成0~9的数字显示,其他字符的数据直接显示为其ASCII码。
单片机和PC机进行通信时,要求使用的波特率、传送的位数等相同。
要能够进行数据传送也必须首先测试双方是否可以可靠通信。
可在PC机和单片机上各编制非常短小的程序,具体可分成PC机串行口发送接收程序、单片机串行口发送程序和单片机串行口发送接收程序。
这三个程序能运行通过,即可证明串行口工作正常。
PC机串行口发送接收程序设置串行口为波特率9600、8位数据、1位停止位、无奇偶校验的简单设置。
从键盘接收的字符可从串行口发送出去,从串行口接收的字符在屏幕上显示。
通过让串行口发送线和接收线短接可测试微机串行口,通过让串行口和单片机系统相接,使用此程序可进一步测试单片机的串行通信状况。
具体程序用BASIC编制,简单易懂。
直接输入即可运行。
程序RS232.三、实验电路原理图图7-1 单片机与PC机间电路原理图四、实验步骤1、在PROTEUS中画好电路原理图。
2、串口模型属性设置串口模型属性设置为:波特率―4800;数据位―8;奇偶校验―无;停止位-1,如图7-2所示。
图7-2 串口模型属性设置3、虚拟终端属性设置PCT代表计算机发送数据,PCR用来监视PC接收到的数据,它们的属性设置完全一样,如图7-3所示。
SCMT和SCMR分别是单片机的数据发送和接收终端,用来监视单片机发送和接收的数据,它们的属性设置也完全一样,如图7-4所示。
单片机和PC机双方的波特率、数据位、停止位和检验位等要确保和串口模型的设置一样,并且同单片机程序中串口的设置一致。
本文详细介绍了串行通信的基本原理,以及在Windows NT、Win98环境下用MFC 实现串口(COM)通信的方法:使用ActiveX控件或Win API.并给出用Visual C++6.0编写的相应MFC32位应用程序。
关键词:串行通信、VC++6.0、ActiveX控件、Win API、MFC32位应用程序、事件驱动、非阻塞通信、多线程.在Windows应用程序的开发中,我们常常需要面临与外围数据源设备通信的问题。
计算机和单片机(如MCS-51)都具有串行通信口,可以设计相应的串口通信程序,完成二者之间的数据通信任务。
实际工作中利用串口完成通信任务的时候非常之多。
已有一些文章介绍串口编程的文章在计算机杂志上发表。
但总的感觉说来不太全面,特别是介绍32位下编程的更少,且很不详细。
笔者在实际工作中积累了较多经验,结合硬件、软件,重点提及比较新的技术,及需要注意的要点作一番探讨。
希望对各位需要编写串口通信程序的朋友有一些帮助。
一.串行通信的基本原理串行端口的本质功能是作为CPU和串行设备间的编码转换器。
当数据从 CPU经过串行端口发送出去时,字节数据转换为串行的位。
在接收数据时,串行的位被转换为字节数据。
在Windows环境(Windows NT、Win98、Windows2000)下,串口是系统资源的一部分。
应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。
串口通信程序的流程如下图:二.串口信号线的接法一个完整的RS-232C接口有22根线,采用标准的25芯插头座(或者9芯插头座)。
25芯和9芯的主要信号线相同。
以下的介绍是以25芯的RS-232C为例。
①主要信号线定义:2脚:发送数据TXD; 3脚:接收数据RXD; 4脚:请求发送RTS; 5脚:清除发送CTS;6脚:数据设备就绪DSR;20脚:数据终端就绪DTR; 8脚:数据载波检测DCD;1脚:保护地; 7脚:信号地。
PC机与单片机之间的串行通讯、数据的发送和接收【摘要】本文以MCS-51单片机为例,详细介绍了PC机与单片机之间的串行通讯、数据的发送和接收。
在Windows98下利用VB的串行通讯控件可实现PC机与单片机之间的通讯。
其数据的发送和接收采用红外线通信方式,其优点是:省去了有线通信信号线的直接连接,使用简单,移动方便,微机与单片机无直接连接,属完全隔离状态,两者间不会因为电平的不同而造成数据传输的失误,抗干扰能力强。
本设计主要应用AT89C51作为控制核心,并与LED数码显示管、双向可控硅、红外发射与接收相结合的系统,充分发挥了单片机的性能。
其优点硬件电路简单,软件功能完善,控制系统可靠,性价比较高等特点,具有一定的使用和参考价值。
【关键字】MSC-51(单片机),红外,RS-232,电平转换器,串行通信半双工【Abstract】This text take one-chip computer MCS-51 for example , introduce a serial communication, data’s sending and receiving . Under the Windows98 we make use of a communication control of VB to achieve the communication of the machine of PC and one-chip computer. Its data’s sending and receiving adopts the method of the infrared ray communication, its advantage is that it exclude the direct link of signal line of with-wired communication ,and usage are simple, and move is convenience etc. The tiny machine have no direct conjunction with single a machine, belonging to the complete insulation appearance, can't result in the error that data deliver both because give or get an electric shock even and different, the antijam ability is strong.This design is a system that it applies AT89C51 as control core and combine the LED figures manifestation tube, MAX232CPE level changer, infrared’s sending and receiving. The system completely exerts the function of one-chip computer. Its advantage is that the hardware circuit is simple; the software function is perfect; the control system is dependable; the rate of price and function is high etc. So the system has certainly consult value.【Keyword】MSC-51(One-chip computer), infrared, RS-232, Level changer, serial communication,half duplex目录前言3第一章系统分析4 1.1 系统功能的概述 5 1.2 系统要求及主要内容 5 1.3 系统技术指标 5第二章系统总体设计6 2.1硬件设计思路 6 2.2软件设计思路 7第三章硬件电路设计7 3.1 单片机模块设计 8 3.2 红外通信(发射与接收)电路的设计 14 3.3 PC机模块的设计 17第四章串行口通信技术20 4.1 单片机串行口通信 21 4.2 PC机串口通信 24第五章软件设计25 5.1 单片机通信程序设计 25 5.2 PC机通信程序设计 29第六章系统调试30 6.1 硬件调试 30 6.2 软件调试 31 6.3 综合调试 33 6.4 故障分析及解决方案 33 6.5 结论与经验 34结束语35附录36 附录1 电路原理图 36 附录2程序流程图 38 附录3程序清单 41 附录4元器件清单 44 附录5 英文资料 45 附录6 中文翻译 52参考文献56前言单片机的英文名称是Micro Controller unit,缩写为MCU,又称为微控制器,它是一种面向控制的大规模集成电路芯片。
串口基本信息用一台电脑实验串口自发自收,实验前要将串口(以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两种连接器,用户可以国家使用的具体机器选择相应的连接器。
一个串口通讯类在/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应用程序的开发中,我们常常需要面临与外围数据源设备通信的问题。
单片机与PC机的串口通信单片机以其体积小、价格低、抗干扰性好等特点,在现代控制系统中常用在操作现场进行数据采集,以及实现现场控制中.但是由于其数据存储容量和数据处理能力都较低,所以一般情况下要通过通信手段使它与PC机相连,把所采到的数据传送到PC机上,再在PC机上进行数据处理,充分发挥两者各自的优势.由于单片机输入、输出电平是TTL电平,而PC机配置的是RS-232标准串行接口,两者的串行规范不一致,因此需要完成单片机与PC机的串口通信原理的方案。
标签:单片机通信串行通信数据通信1 串行通信的基本知识1.1 数据通信的基本概念在实际应用中,计算机的CPU与外部设备之间经常要进行信息交换;一台计算机与其他计算机之间也往往要交换信息,这些信息交换都可称为通信。
通信的方式有串行和并行两种。
串行通信是指数据一份一位按顺序传送的通信方式。
其突出特点是只需少数几条线就可以在系统间交换信息,大大降低了传送成本.尤其适用于远距离通信。
但华行通信的速度比较低。
并行通信是指数据的各位同时进行传送的通信方式。
其优点是数据的传送速度快,缺点是传输线多,数据有多少位,就需要多少传输线。
一般适用于高速短距离的应用场合,典型的应用是计算机和打印机之间的连接。
1.2 串行通信的传送方向串行通信的传送方向有单工、半双工和全双工三种。
单工方式下只允许数据向一个方向传送,要么只能发送,要么只能接收;半双工方式下允许数据在一条传输线上往两个相反的方向传送,但不能同时传送,只能交替进行。
为了避免双方同时发送,需另加联络线或制定软件协议:全双工是指数据可以同时往两个相反的方向传送,需要两个独立的数据线分别传送两个相反方向的数据。
1.3 串行通信的同步方式串行通信中必须规定一种双方都认可的同步方式,以便接收端完成正确的接收。
串行通信有异步和同步两种基本方式。
1.3.1 异步通信:在异步通信中,数据按帧传送,用一位起始位(“0”电平)表示一个字符的开始,接着是5-8个数据位。
总第172期2008年第10期舰船电子工程Ship Electronic Enginee ring Vol.28No.10109 基于中断方式的PC 机与单片机串口通信的实现3王 强1) 苑秉成1) 席再杰2)(海军工程大学兵器工程系1) 武汉 430033)(海军91267部队2) 福州 350015)摘 要 阐述PC 机串行通信和中断编程的原理,介绍一种在中断方式下实现PC 机与单片机进行串口通信的方法,给出用于PC 机的基本程序。
关键词 串行通信;Tur bo C ;单片机;中断服务程序中图分类号 TP368.1S erial Com m unication between a P C an d a Chip Microcomp ut erB ased on Interrup t Service Routi neWa ng Qiang 1) Yua n Binc he ng 1) Xi Zaijie 2)(Dept.of Weaponry Engineering ,Naval Univer sity of Engineering 1),Wuhan 430033)(NO.91267Troops of PLA 2),Fuzho u 350015)Abs tra ct The principles of serial com municatio n and inte rrupt se rvice routine wer e fir st described in the paper ,a nd a metho d of communication betwee n a PC and a chip microcompute r ba sed on ISR was introduced.Then the basic code for PC was off ere d.Ke y w ords se rial communica tio n ,t ur bo C ,SCM ,ISR Class N umber TP368.11 引言在大的实时控制系统中,通常存在多个工控机之间以及工控机与单片机的通信。
单片机与pc机串口通信单片机与 PC 机串口通信在现代电子技术领域,单片机与 PC 机之间的串口通信是一项非常重要的技术。
它为各种应用场景提供了便捷的数据传输方式,使得单片机系统能够与强大的 PC 机进行有效的信息交互。
首先,让我们来了解一下什么是单片机。
单片机,也被称为微控制器(MCU),是一种集成了 CPU、内存、I/O 接口等多种功能于一体的小型芯片。
它在各种电子设备中扮演着“大脑”的角色,负责控制和协调设备的运行。
而 PC 机,作为功能强大的通用计算机,拥有丰富的资源和强大的处理能力。
那么,为什么要实现单片机与 PC 机的串口通信呢?原因有很多。
一方面,通过串口通信,PC 机可以向单片机发送控制指令,实现对单片机所控制设备的远程操作。
另一方面,单片机可以将其采集到的数据实时传输给 PC 机,以便在 PC 机上进行进一步的处理、分析和存储。
串口通信的原理其实并不复杂。
它是一种基于串行数据传输的通信方式,通过发送和接收一系列的二进制位来实现信息的传递。
在串口通信中,数据以一位一位的顺序依次传输,相比于并行通信,虽然速度较慢,但具有线路简单、成本低、可靠性高等优点。
要实现单片机与 PC 机的串口通信,需要一些硬件和软件的支持。
在硬件方面,通常需要一个串口转换芯片,将单片机的 TTL 电平(通常为 0 5V)转换为 PC 机所使用的 RS232 电平(通常为-10V 到+10V)。
常见的串口转换芯片有 MAX232 等。
此外,还需要连接相应的数据线,将单片机的串口引脚与 PC 机的串口接口相连。
在软件方面,对于单片机来说,需要编写相应的串口通信程序,设置串口的工作模式、波特率、数据位、停止位等参数,并实现数据的发送和接收功能。
而对于 PC 机,通常可以使用各种编程语言,如 C++、C、Python 等,通过调用操作系统提供的串口通信库来实现与单片机的通信。
```cinclude <reg52h>void initUART(){TMOD = 0x20; //设置定时器 1 为模式 2TH1 = 0xfd; //波特率 9600TL1 = 0xfd;TR1 = 1; //启动定时器 1SCON = 0x50; //工作方式 1,允许接收}void sendByte(unsigned char dat){SBUF = dat;while (!TI);//等待发送完成TI = 0; //清除发送标志}void main(){initUART();while (1){sendByte('A');delay_ms(1000);}}```在这个示例中,首先通过`initUART` 函数对串口进行初始化设置,包括波特率等参数。
pc机与单片机之间的通信方式及协议PC机和单片机之间的通信是嵌入式系统开发过程中的一个重要问题。
随着嵌入式技术的不断发展,越来越多的应用需要通过PC机和单片机之间的通信来实现数据交换、控制指令传输等功能。
本文将深入探讨PC机和单片机之间的通信,并介绍一些常用的通信方式和协议。
一、PC机和单片机之间的通信方式在PC机和单片机之间进行通信前,需要确定使用哪种通信方式。
根据通信距离、带宽、成本和可靠性等因素的不同,可以选择以下几种通信方式:1.串口通信串口通信是PC机和单片机之间最常用的通信方式之一。
它使用两根线(TX 和RX)进行数据传输,传输速率一般较低,但成本低廉,适用于较短距离的通信。
串口通信常用的协议包括UART(Universa1AsynchronousReceiver/TransmItter)>RS232和RS485等。
2.并口通信并口通信是另一种常见的PC机和单片机之间的通信方式。
它使用8根或16根线进行数据传输,传输速率较高,但成械校高,适用于较长距离的通信。
并口通信常用的协议包括GP1O(Genera1Purpose1nput∕Output)、1PT(1inePrintTermina1)和CentroniCS等。
B通信USB通信是一种高速、可靠和易于使用的通信方式,成本适中,适用于中短距离的通信。
USB通信可以提供高带宽和多路复用功能,并支持热插拔和自动配置。
在PC机和单片机之间进行USB通信时,需要使用USB转串□芯片或USB转并口芯片将USB信号转换为串口信号或并□信号。
4.网络通信网络通信是一种基于TCP/IP协议的通信方式,适用于远程通信和大规模数据传输。
在PC机和单片机之间进行网络通信时,需要使用以太网接口芯片或无线网络模块等设备来连接网络,并通过socket编程实现数据交换和控制指令传输。
二、PC机和单片机之间的通信协议为了保证PC机和单片机之间的通信稳定和正确,需要使用适当的通信协议。
双机串行通信的设计与实现一、设计要求1.单机自发自收串行通信。
接收键入字符,从8251A的发送端发送,与同一个8251A的接收端接收,然后在屏幕上显示出来。
2.双机串行通信,在一台PC机键入字符,从8251A的发送端发送给另一台PC机,另一台PC机的8251A的接收端接收,然后在屏幕上显示出来。
二、所用设备IBM-PC机两台(串行通信接口8251A两片,串行发送器MC1488和串行接收器MC1489各两片,定时器/计数器8253,终端控制器8259等),串口线一根串行直连电缆用于两台台电脑通过串行口直接相连,电缆两端的插头都是9 针的母插头:三、硬件方案1.设计思想计算机传输数据有并行和串行两种模式。
在并行数据传输方式中,使用8条或更多的导线来传送数据,虽然并行传送方式的速度很快,但由于信号的衰减或失真等原因,并行传输的距离不能太长,在串行通信方式中,通信接口每次由CPU得到8位的数据,然后串行的通过一条线路,每次发送一位将该数据放送出去。
串行通信采用两种方式:同步方式和异步方式。
同步传输数据时,一次传送一个字节,而异步传输数据是一次传送一个数据块。
串口是计算机上一种非常通用设备串行通信的协议。
大多数计算机包含两个基于RS232的串口。
串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
典型地,串口用于ASCII码字符的传输。
通信使用3根线完成:(1)地线,(2)发送,(3)接收。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。
其他线用于握手,但是不是必须的。
串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
对于两个进行通行的端口,这些参数必须匹配:RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。
可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。
串行接口的工作原理
串行接口(Serial Interface)的工作原理是,通过一条传输线将数据位按照顺序进行传输,而不是同时传输所有数据位。
它一般由两根线组成,分别是发送线(TX)和接收线(RX)。
数据通过发送线以连续的位序列的形式从发送方传输到接收方,接收方通过接收线将接收到的数据重新组装成完整的消息。
在串行通信时,数据通常是按照位的顺序逐个传输的。
发送方将数据位按顺序逐个发送到发送线上,接收方通过接收线逐个接收数据位。
数据位的传输速率由波特率(Baud rate)来控制,波特率指的是每秒传输的位数。
为了确保数据能够被准确地发送和接收,串行口通常还需要使用其他信号线,如数据就绪信号(Ready)和数据结束信号(Stop)。
数据就绪信号用于通知接收方有新的数据即将到来,并准备好接收,而数据结束信号用于表示数据传输的结束。
串行口的工作原理可以被简单概括为发送方将数据按照位的顺序发送给接收方,接收方通过接收线逐个接收数据位,并将其重新组装成完整的消息。
通过控制波特率和使用其他信号线,串行口可以实现可靠的数据传输。
单片机与pc机的串口通信曹元山07电信工220071201010一.PC与单片机串行通信控制背景和意义:计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。
由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。
在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。
RS-232-C接口(又称EIA RS-232-C)是目前最常用的一种串行通讯接口。
它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。
它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”该标准规定采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。
随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制。
PC 机具有强大的监控和管理功能,而单片机则具有快速及灵活的控制特点,通过PC机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。
因此如何实现PC机与单片机之间的通讯具有非常重要的现实意义。
二.串行通信接口常用PC机串行接口有3种:PS/2接口用于连接键盘和鼠标;RS232C串行接口一般用来实现PC机与较低速外部设备之间的远距离通信;USB通用串行总线接口是现在比较流行的接口,它最大的好处在于能支持多达127个外设,外设可以独立供电,也可以通过USB接口从主板上获得500 mA@+5 V的电流,并且支持热拔插,真正做到即插即用。
PC机的3种串行接口都可以用于与外设之间的数据通信,PS/2接口由于是专用于键盘和鼠标,在PC机的编程处理上要麻烦一些,而且在多数情况下,其他外设还不能占用。
单片机与PC串口通信课程设计单片机与PC机的串口通信摘要单片机由于性价比高、使用灵活等优点而广泛应用于各种电子系统、自动控制系统,但是其存储容量小,处理的数据量不大。
为了克服这一缺点,我们可以将单片机连接到PC机上,由单片机采集数据,然后将数据汇总到PC机,再进行各种数据处理。
单片机与PC机一般采用串行通信,由于51系列单片机中一般集成了全双工的串行端口,只要配以电平转换的驱动电路、隔离电路就可组成一个简单可行的通信接口。
PC机具有强大的监控和管理功能,而单片机则具有快速及灵活的控制特点,本设计将通过电平转换电路实现单片机与PC机中的RS-232标准总线之间的串行通信。
这也是许多测控系统中常用的一种通信解决方案。
关键词:单片机,PC机,串行通信,电平转换,总线目录课程设计(论文)用纸第一章:绪论1.1课题研究的目标和意义单片机与PC机串行通信端口在系统控制的范畴中一直占据着及其重要的地位,它不仅没有因为时代的进步而遭淘汰,反而在规格上越来越完善,应用也越来越广泛。
作为一种基本而又灵活方便的通信方式,串口通信被广泛应用于PC与PC 或者PC与单片机之间的数据交换以及其他工业控制与自动控制中。
如今,在很多场合中,要求单片机不仅能独立完成单机的控制任务,还要能与其他数据控制设备(单片机、PC机等)进行数据交换。
因此如何实现PC机与单片机之间的通信具有非常重要的现实意义。
1.2所属领域的现状及发展状况单片机,亦称单片微电脑或单片微型计算机。
它是把中心处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功用部件都集成在一块集成电路芯片上的微型计算机。
现在可以说单片机是百花齐放的期间,天下上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,不成胜数,应有尽有,它们各具特色,互成互补,为单片机的应用供应广漠的六合。
通用型单片机通过三总线结构扩展外围器件成为单片机应用的主流结构。
单片机与PC机之间的通信例程1. 引言单片机与PC机之间的通信是嵌入式系统开发中非常重要的一部分。
通过单片机与PC机之间的通信,可以实现数据传输、命令控制等功能。
本文将介绍单片机与PC 机之间通信的基本原理以及编写通信例程的步骤。
2. 单片机与PC机通信原理单片机与PC机之间的通信可以通过串口(UART)或者USB接口实现。
串口是一种常见且简单的通信方式,适用于低速数据传输。
USB接口则具有更高的传输速率和更复杂的协议,适用于高速数据传输和复杂的控制。
2.1 串口通信原理串口通信使用两根线(TXD和RXD)进行数据传输。
发送端将数据通过TXD线发送到接收端,接收端通过RXD线接收数据。
发送端和接收端需要使用相同的波特率(Baud rate)进行通信,波特率决定了每秒钟传输的位数。
2.2 USB通信原理USB通信使用四根线进行数据传输:VCC(供电)、GND(地线)、D+、D-(数据线)。
USB接口还包括一个复杂的协议,如USB1.1、USB2.0、USB3.0等。
3. 编写通信例程的步骤编写单片机与PC机之间的通信例程,需要以下步骤:3.1 确定通信方式首先需要确定使用串口通信还是USB通信。
根据实际需求选择合适的通信方式。
3.2 配置硬件根据选择的通信方式,配置单片机和PC机的硬件接口。
如果使用串口通信,需要连接TXD和RXD线;如果使用USB通信,需要连接VCC、GND、D+、D-线。
3.3 编写单片机程序根据单片机的型号和开发环境,编写单片机程序。
程序中需要包含对串口或USB接口的初始化配置以及数据传输或命令控制的代码。
3.4 编写PC机程序在PC机上编写相应的程序,用于与单片机进行通信。
根据选择的通信方式,编写串口或USB接口相关的代码。
在使用串口通信时可以使用Python中的serial库进行串口读写操作。
3.5 测试与调试将编写好的单片机程序烧录到单片机中,并运行PC机程序。
通过监视器或调试工具查看数据传输情况,并进行必要的调试。
PC机串口通信的工作原理MCU资料2008-08-27 09:03:59 阅读22 评论0 字号:大中小订阅串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB 混淆)。
大多数计算机包含两个基于RS232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
它很简单并且能够实现远距离通信。
比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
典型地,串口用于ASCII码字符的传输。
通信使用3根线完成:(1)地线,(2)发送,(3)接收。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。
其他线用于握手,但是不是必须的。
串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
对于两个进行通行的端口,这些参数必须匹配:a,波特率:这是一个衡量通信速度的参数。
它表示每秒钟传送的bit的个数。
例如300波特表示每秒钟发送300个bit。
当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。
这意味着串口通信在数据线上的采样率为4800Hz。
通常电话线的波特率为14400,28800和36600。
波特率可以远远大于这些值,但是波特率和距离成反比。
高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。
b,数据位:这是衡量通信中实际数据位的参数。
当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。
如何设置取决于你想传送的信息。
比如,标准的ASCII码是0~127(7位)。
扩展的ASCII码是0~255(8位)。
如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。
每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。
由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。
c,停止位:用于表示单个包的最后一位。
典型的值为1,1.5和2位。
由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。
因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。
适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
d,奇偶校验位:在串口通信中一种简单的检错方式。
有四种检错方式:偶、奇、高和低。
当然没有校验位也是可以的。
对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。
例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。
如果是奇校验,校验位位1,这样就有3个逻辑高位。
高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。
这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步-------------------------一、RS485串口通信电路图二.VxWorks中基于RS485总线的串口通信协议及实现摘要:本文介绍了在嵌入式实时操作系统Vxworks下串行设备的驱动架构及实现,提出了一种基于RS-485总线的新型串口通信协议,重点讨论了基于这种协议的应用程序的设计方法,发送时主要采用了总线仲裁机制,接收时主要采用了字符合法性校验、长度校验、内容的CRC校验,提高了系统的通信效率和稳定性。
关键词:VxWorks;RS-485;通信协议;总线仲裁;CRC校验1 引言随着信息技术和互联网的飞速发展,以及计算机、通讯、数码产品等领域的高速增长,数字化时代已经来临。
嵌入式设备是数字化时代的主流产品,嵌入式软件是数字化产品的核心,作为嵌入式软件的基础和关键,嵌入式操作系统在产业发展过程中扮演着越来越重要的角色,应用遍及工业自动化、网络通信、航空航天、医疗仪器等领域。
2 RS-485总线RS-485总线接口是一种常用的串口,具有网络连接方便、抗干扰性能好、传输距离远等优点。
RS-485收发器采用平衡发送和差分接收,因此具有抑制共模干扰的能力,加上收发器具有高的灵敏度,能检测到低达200mv的电压,可靠通信的传输距离可达数千米。
使用RS-485总线组网,只需一对双绞线就可实现多系统联网构成分布式系统、设备简单、价格低廉、通信距离长。
3 VxWorks中串口驱动的实现VxWorks操作系统是美国Wind River公司设计开发的嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。
Vxworks操作系统的I/O 系统可以提供简单、统一、与任何设备无关的接口。
这些设备包括:面向字符设备、随机块存储设备、虚拟设备、控制和监视设备以及网络设备。
Vxworks的I/O 系统包括基本I/O 系统和缓冲I/O 系统,具有比其他I/O 系统更快速,兼容性更好的特性。
这对于实时系统是很重要的。
3.1 串口驱动架构基于vxWorks的串口设备驱动程序架构,对vxWorks的虚拟设备ttyDrv进行封装,向上将TTY设备安装到标准的I/O系统中,上层应用通过标准的I/O 接口完成对硬件设备的操作,向下提供对实际硬件设备的底层设备驱动程序。
其软件架构如图1所示。
由图1可知,串口设备驱动由两部分组成,一部分为对ttyDrv进行封装,将串行设备安装到标准的I/O系统中,提供对外的接口;另一部分为串行设备驱动程序,提供对硬件设备的基本操作。
虚拟设备ttyDrv管理着I/O系统和真实驱动程序之间的通信。
在I/O系统方面,虚拟设备ttyDrv作为一个字符型设备存在,它将自身的入口点函数挂在I/O系统上,创建设备描述符并将其加入到设备列表中。
当用户有I/O请求包到达I/O系统中时,I/O系统会调用ttyDrv相应的函数响应请求。
同时,ttyDrv管理了缓冲区的互斥和任务的同步操作。
另一方面,ttyDrv负责与实际的设备驱动程序交换信息。
通过设备驱动程序提供的回调函数及必要的数据结构,ttyDrv将系统的I/O请求作相应的处理后,传递给设备驱动程序,由设备驱动程序完成实际的I/O操作。
3.2 驱动初始化串口设备的初始化xxDevInit流程如图2。
设备驱动的初始化过程首先调用系统函数ttyDrv(),该函数通过调用iosDrvInstall()将ttyOpen()、ttyIoctl()、tyRead()、tyRead、tyWrite安装到系统驱动函数表中,供I/O系统调用。
接着根据用户入参对串口芯片寄存器进行初始化,安装驱动函数指针。
最后调用系统函数ttyDevCreate()创建ttyDrv设备。
该函数初始化设备描述符,调用tyDevInit()函数初始化tyLib、初始化select功能、创建信号量和输入输出缓冲区,调用iosDevAdd()函数将设备添加到设备列表中并将设备置为中断模式。
驱动模块初始化成功后,应用程序就可以用标准的I/O函数read()和write()收发数据了。
4 RS-485通信协议4.1 485通信帧格式表 1 485通信帧格式目的地址源地址长度控制帧净荷数据CRC检验1Byte 1Byte 1Byte 2Bytes 由长度字节确定,≤255Bytes2Bytes 长度字段不包含控制字段、检验字段。
校验字段使用CCITT的CRC16的校验方法,其生成多项式为。
校验字段默认是加上的,只有在发送方的CPU负荷比较大时,并且能够保证本帧出现的错误不会对系统产生潜在的和现实的影响,或者保证影响在可以控制在一定范围内并且可以忍受时,才考虑取消校验字段。
当接收方接收到帧的总长度减去长度字段值与帧头的长度之和,得到的结果为2时,表明发送方附带了校验和。
4.2 485数据链路层帧表 2 485链路层帧格式头标志(0x7E)485通信帧尾标志(0x7E)1Byte 最大不超过485通信帧的长度(不包括字节拆分的添加字符)2Bytes头标志是任意个数的连续的字符0x7E,尾标志也是任意个数的连续的字符0x7E。
预定头标志为1Byte,尾标志为2Bytes,在发送方的CPU认为发送完毕最后一个尾标志字符时,保证第一个尾标志字符能够完全到达目的设备。
发送方除头标志或尾标志之外,不允许出现0X7E,若遇到0X7E,则拆分成0X7D,0X5E;若出现0X7D,则拆分成0X7D,0X5D传送。
5 串行通信应用程序设计5.1 初始化配置∙创建一个51200Bytes的接收环形缓冲区,用来存放剩余的或不成帧的数据:g_tRecvRingId = rngCreate(51200);∙串口设备描述符为“myCom”,打开串口并创建设备读写描述符:g_sdwChannelFD = open(“myCom”, O_RDWR, 0);∙设置波特率:ioctl(g_sdwChannelFD, FIOBAUDRATE, g_RS485LinkCB[i].sdwBaudRate);∙清空接收、发送缓存:ioctl(g_sdwChannelFD, FIOFLUSH,0);∙工作模式设置:ioctl(g_sdwChannelFD, FIOSETOPTIONS, OPT_RAW);5.2 通信发送过程在发送之前,发送方需要按照双方约定的485通信帧格式将消息组帧,并按照约定数据链路传输协议组成485的数据链路帧。
接下来就是如何发送数据包了。
在RS-485通信中,发送过程主要采取了总线仲裁机制:在向485总线写数据时,主设备先写一字节的地址请求,所有的从设备均会收到,只有地址与之相等的从设备端口打开,其他设备全部关闭。
这样,主设备与从设备之间的通信就是点对点的。
每一个从设备均有一根请求线与主设备相连,若从设备需要与主设备通信时,先通过请求线进行请求,当请求成功后,从设备应能检测到总线上的地址与自身地址相同,从设备才能打开发送中断,才能发送消息,发送完之后必须关闭发送中断,释放总线,以保证其他从设备这段时间能与主设备正常通信,提高通信效率。
RS-485通信发送流程图如图3所示。
5.3 通信接收过程对于串口通信,仍然要关心数据接收的实时性,因此采用中断方式,利用VxWorks提供的select 函数的事件触发机制,将读串口的任务阻塞使其一直等待数据,当有数据来到的时候该任务会立刻自动响应,提高系统的实时性,调用read( )接收数据并存入先前创建的接收环形缓冲区g_tRecvRingId中直至缓冲区g_tRecvRingId满或接收完链路上的数据,接下来就是根据通信协议来处理数据包――解帧处理过程。