51单片机和PC机串行通信系统设计.pdf

上传人:wj 文档编号:14653286 上传时间:2023-06-25 格式:PDF 页数:5 大小:326.75KB
下载 相关 举报
51单片机和PC机串行通信系统设计.pdf_第1页
第1页 / 共5页
51单片机和PC机串行通信系统设计.pdf_第2页
第2页 / 共5页
51单片机和PC机串行通信系统设计.pdf_第3页
第3页 / 共5页
51单片机和PC机串行通信系统设计.pdf_第4页
第4页 / 共5页
51单片机和PC机串行通信系统设计.pdf_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

51单片机和PC机串行通信系统设计.pdf

《51单片机和PC机串行通信系统设计.pdf》由会员分享,可在线阅读,更多相关《51单片机和PC机串行通信系统设计.pdf(5页珍藏版)》请在冰点文库上搜索。

51单片机和PC机串行通信系统设计.pdf

计算机技术化工自动化及仪表,2005,32(4):

3941ControlandInstrumentsinChemicalIndustry51单片机和PC机串行通信系统设计张红涛,王三武,鲁力,刘畅(武汉理工大学机电工程学院,湖北武汉430070)摘要:

介绍51系列单片机和PC机进行串口通信硬件电路的设计原理及通信软件的设计原理和方法,并给出硬件原理图及通信软件程序。

重点介绍在VC+环境下如何通过WindowsAPI通信函数实现对串口的操作。

关键词:

串行通信;通信接12;WinAPI;软件设计;VisualC+中图分类号:

TP31文献标识码:

B文章编号:

1000-3932(2005)(04)-0039-031引言在自动化控制和智能仪器仪表中,单片机的应用越来越广泛,由于单片机的运算功能较差,往往需要借助计算机系统,因此单片机和PC机进行远程通信更具有实际意义,通信的关键在于互传数据信息。

51系列单片机内部的串行口具有通信的功能,该串行口可以作为通信接口,利用该串行口与PC机的串行口COMl或COM2进行串行通信,将单片机采集的数据传送到PC机中,由PC机的高级语言或数据库语言对数据进行整理及统计等复杂处理就能满足实际的应用需要。

2通信接口的设计为了提高串行通信的可靠性,增大通信距离,一般采用标准串行接口、RS-232C、RS-422A等标准接口来进行串行通信。

EIARS-232C是异步串行通信中应用最广泛的标准总线,它包括了按位串行传输的电气和机械方面的规定。

在微机通信中,通常使用RS-232C接口即PC机的COM口,其引脚定义如图1所示。

PC机的COM口,输入输出为RS-232C电平,而51单片机串行口的输入输出均为TTL电平。

由于TTL电平和RS-232C电平互不兼容,所以两者接口时,必须进行电平转换。

电平转换最常用的芯片是传送线驱动器MCl488和接收器MCl489,其作用除了电平转换外,还实现正负逻辑电平转换,如图2和图3所示。

图4是单片机与RS-232标准接口电路。

数据设置就绪(DSR)6请求发送(RTS)7清除发送(CTS)8振铃指示(RO9l载波检测2接收的数据(RD)3发送的数据(TD)4数据终端就绪(DTR)5信号地图1RS-232C接口引脚定义3通信软件的设计Pc机和单片机在进行通信时,首先分别对各自的串行口进行初始化、确定串行口工作方式、设定波特率、传输数据长度等,然后才开始数据传输,这些工作是由软件来完成的,因此对PC机和单片机均需设计相应的通信软件。

收稿日期:

2005-02-21DMOSSoftwareandItsApplicationinChemicalProcess0lpfimizationYANGShanshen91,LUWen-con91”,CHENNianyi2(1SchoolofMaterialsScienceandEngineering,ShanghaiUniversity,Shanghai200072,China;2SchoolofScience,ShanghaiUniversity,Shanghai200444,China)Abstract:

Manykindsofdataminingtechnologythatincludepatternrecognition,supportvectormachine,artificialneuralnetwork,geneticalgorithm,linearornonlinearregressionmethodareappliedinDMOS(DataMiningOptimizationSystem)TheDMOSCalleffectivelysolvetheproblemswhichhavemultiplefactor,highnoise,nonlinear,nonGaussiandistributionandnonuniformdistributionincomplicatedindustryprocessoptimizationTheDMOSsoftwareissuccessfullyappliedtoindustrialprocessoptimizationofthedieseloilhydrofiningunitandtheacrylonitrilereactorunitAccordingtotheprocessdatagatheredbyDCS,theunitmajoroptimizationoperationprocessparametersareresearchedUsingpatternrecognitionmethod,thequalitativemodeloftheunitproductionoptimizationoperationisbuiltThemathematicalmodelofoptimizationobjectiveisestablishedKeywords:

DMOS;datamining;patternrecognition;processcontrolandoptimization;hydrofining;crylonitrile万方数据40化工自动化及仪表第32卷31PC机上通信软件的设计DOS环境下,串行通信一般用中断方式来实现,用户对通信端口进行完全控制。

而在Windows环境下,系统禁止应用程序直接对硬件进行操作。

在Windows环境下提供了完备的API应用程序接口函数,程序员通过这些函数与通信硬件接口。

通信函数是中断驱动的:

发送数据时,先将其放入缓存区,串口准备好后,就将其发送出去;传来的数据迅速申请中断,使Windows接收它并将其存入缓冲区,以供读取。

接收方式主要有查询和中断方式。

采用查询方式时,CPU要不断测试串口是否有数据,以防接收串口数据时出现错误、效率低;而采用中断方式则无需测试串口,一旦有数据传至,CPU终止当前任务,由中断服务程序完成操作。

因此,中断方式具有效率高、接收准确、编程简单等特点。

响响图3MCl489引脚示意图TXD每(P201谢RXD(P21)GND电缆+5VDCRXDPCRTSCTSCoMl躐器或DIRCOM2GND图4单片机与RS-232标准接口电路开始通信前,首先要初始化串口,包括选串口、设置串口掩码、设置缓冲区、设置波特率、创建同步事件、创建线程并让辅助线程处于发信号状态等。

用户通过调用API提供的函数来完成。

Win32对IO口,如串口、并口等进行操作需通过“文件”方式实现,串口的打开、关闭、读取和写入所用的函数和操作文件的方式相似。

常用的函数调用有:

(1)打开串口。

可使用CreateFile()函数,其格式如下:

HANDLECreateFile(LPCTSTRlpFileName,DWORDdwDesiredAccess,DWORDdwSharedMode,DWORDLPSECURITYATIRIBUTESlpSecurityAttributes,DWORDdwCreationDistribute,DWORDdwFlagsAndAttributes,HANDLEhTemplateFile);其中,参数lpFileName是要打开的串口名,如“COMl”或“COM2”;参数dwDesiredAccess指定串口的访问模式;参数dwSharedMode指定串口的共享模式,串口不能共享,故该参数必须置为0;参数lpSecurityAttributes引用一个安全属性结构,该参数通常置为NULL;参数dwCreationDistribute指定文件的打开方式,对于串口,它只能设置为OPENEXISTING,标识该串口总是存在;参数dwFlagsAndAttributes指定文件标志和属性,对于串口,该参数置为0或置为FILEFLAGOVERLAPPED(IO口在后台操作);参数hTemplateFile指定对模板文件具有GENERICREAD访问的句柄,对于串口,该参数必须置为NULL。

如果函数调用成功,则返回一个打开的串口句柄;否则返回INVALIDHANDLEVALUE。

(2)设置串口。

设置串口可以分两步完成。

首先用BuildCommDCB()函数修改DCB(串行通信设备控制块)结构,然后用SetCommState()函数将DCB结构写到打开的串口,便完成了串口的设置。

BuildCommDCB()函数使用格式如下:

BOOLBuildCommDCB(LPCTSTRlpDef,LPDCBlpDCB);其中,lpDCB是指向DCB结构的指针,DCB结构的参数项很多,主要包括波特率、奇偶校验、数据位、停止位的设置等。

该函数使用与MS2DOSMODE命令行参数形式一样的字符串指定波特率、奇偶校验、数据位和停止位。

如果该函数调用成功,则返回值为TRUE;否则返回值为FALSE。

SetCommState()函数使用格式如下:

BOOLSetCommState(HANDLEhFile,LPDCBIpDCB);万方数据第4期张红涛等51单片机和Pc机串行通信系统设计41(3)设置缓冲区大小。

如果程序需要重新分配发送和接收缓冲区,则使用SetupComm()函数。

(4)清除缓冲区。

可使用PurgeComm()函数。

(5)从串口接收数据。

可使用Read2File()函数。

(6)从串口发送数据。

可使用Write2File()函数。

(7)关闭串口。

可使用CloseHandle()函数。

有了Win32API串行通信函数,就可以实现串口的打开和关闭,设置串口状态,并进行串行数据的发送和接收,完成串行通信任务。

编写Win32串行通信程序的基本步骤是:

使用CreateFile()函数获得串口句柄;使用BuildCommDCB()和SetCommState()函数设置串口工作状态;可根据需要选择相应的结构和函数进行其它设置。

如重新设置发送接收缓冲区可使用SetupComm()函数;设置超时则可修改COMMTIMEOUTS结构并使用SetCommTimeouts()函数等;使用ReadFile()和WriteFile()函数读写串口:

串行通信结束时,使用CloseHandle()函数关闭串口以释放控制权,使串El可以被其它的程序使用。

32单片机收发软件设计设计单片机的通信软件,实际上是对单片机的串行口的设计,通常采用汇编语言来设计。

首先必须设置串行通信方式(SCON)和波特率(PCON)。

汇编程序如下所示:

(1)发送程序的设计。

TRT:

MOVSCON,#50H;初始化方式1,波特率为F32MOVPCON鹤OHMOVRO,#50HMOVR7,#10HLOOP:

MOVA,R0MOVC,IX3W10MoVTB8CMOVSBUF,A;数据给SBUF,启动发送WAITO:

JBCTI,CONT;判断发送中断标志SJMPWAITOCONT:

INCR0DJNZR7,LGIOPRET

(2)接收程序的设计。

RVE:

MOVTMOD,#20H;初始化方式2定时状态TlMOVTHl,#0F4H;初始化计数常数T1MOVTLl加F4HSETBTRlMOVR0牺OHMOVR7,#10HMOVSCON,#0DOH;串行Et化方式3,接收MOVPCON,釉H;置SMOD=0WAIT:

JBCRI,PRI;sJMPWAIIPRI:

MOVA,SBUF;JNBPSWl0,PNPJNBRB8,PERSJMPRIGmPNP:

JBRB8,PERRIGHT:

MOVR0,A;数据到缓冲器INCR0DJNZR7,WAIT;判断数据是否接收结束CLRPSWl5;接收结束置标志RET4结论由Pc机和单片机构成的通信系统在自动控制、数据采集等方面得到了广泛的应用,因此这种通信系统的研究和使用具有很大应用价值。

SystemDesignofSerialPortCommunicationbetween51SinglechipMicrocomputerandPCZHANGHongtao,WANGSail-wu,LULi,LIUChang(SchoolofElectromechanicalEngineering,WuhanUniversityofTechnology,Wuhan430070,China)Abstract:

Thedesignprincipleoftheserialportcommunicationhardwarecircuitandthecommunicationsoftwarebe-tweensinglechipmicrocomputerandPCareintroducedThehardwareprincipledrawingsandthecommunicationsoftwareprogramareprovidedHowtooperateontheserialportbycallingtheWindowsAPIcommunicationfunctionsiSintroducedKeywords:

serialcommunication;communicationinterface;WinAPI;softwaredesign;VisualC+万方数据51单片机和PC机串行通信系统设计51单片机和PC机串行通信系统设计作者:

张红涛,王三武,鲁力,刘畅,ZHANGHong-tao,WANGSan-wu,LULi,LIUChang作者单位:

武汉理工大学,机电工程学院,湖北,武汉,430070刊名:

化工自动化及仪表英文刊名:

CONTROLANDINSTRUMENTSINCHEMICALINDUSTRY年,卷(期):

2005,32(4)被引用次数:

10次相似文献(10条)相似文献(10条)1.期刊论文刘剑鸣温控系统中VC实现PC机与单片机串行通信-电脑开发与应用2003,16(11)介绍了使用VC+6.0实现PC机和单片机串行通讯的开发方法、系统硬件电路结构、PC机VC+收发软件实现和单片机收发软件,详述了VC串行通讯控件的特点,描述了通信接口,给出了单片机的调试程序.2.学位论文余强力基于FPGA的SCI串行通信接口的研究与实现2008国家863项目“飞行控制计算机系统FC通信卡研制”的任务是研究设计符合CPCI总线标准的FC通信卡。

本课题是这个项目的进一步引伸,用于设计SCI串行通信接口,以实现环上多计算机系统间的高速串行通信。

本文以此项目为背景,对基于FPGA的SCI串行通信接口进行研究与实现。

论文先概述SCI协议,接着对SCI串行通信接口的两个模块:

SCI节点模型模块和CPCI总线接口模块的功能和实现进行了详细的论述。

SCI节模型包含Aurora收发模块、中断进程、旁路FIFO、接受和发送存储器、地址解码、MUX。

在SCI节点模型的实现上,利用FPGA内嵌的RocketIO高速串行收发器实现主机之间的高速串行通信,并利用AuroraIP核实现了Aurora链路层协议;设计一个同步FIFO实现旁路FIFO;利用FPGA上的块RAM实现发送和接收存储器;中断进程、地址解码和多路复合分别在控制逻辑中实现。

CPCI总线接口包括PCI核、PCI核的配置模块以及用户逻辑三个部分。

本课题中,采用FPGA+PCI软核的方法来实现CPCI总线接口。

PCI核作为PCI总线与用户逻辑之间的桥梁:

PCI核的配置模块负责对PCI核进行配置,得到用户需要的PCI核;用户逻辑模块负责实现整个通信接口具体的内部逻辑功能;并引入中断机制来提高SCI通信接口与主机之间数据交换的速率。

设计选用硬件描述语言VerilogHDL和VHDL,在开发工具XilinxISE7.1中完成整个系统的设计、综合、布局布线,利用Modelsim进行功能及时序仿真,使用DriverWorks为SCI串行通信接口编写WinXP下的驱动程序,用VC+6.0编写相应的测试应用程序。

最后,将FPGA设计下载到FC通信卡中运行,并利用ISE内嵌的ChipScopePro虚拟逻辑分析仪对设计进行验证,运行结果正常。

文章最后分析传输性能上的原因,指出工作中的不足之处和需要进一步完善的地方。

3.会议论文盛琥在嵌入式系统中对可编程异步通信接口8250的编程2007本文根据项目应用的特殊要求,在DOS操作系统中对8250可编程异步通信接口进行编程实现串行通信功能。

并对两种方案进行比较,采用中断触发方案,很好地满足了设计需求。

4.学位论文郭治平符合USB2.0规范的串行通信接口芯片设计2009通用串行总线(USB)是计算机与外围设备互连的标准接口之一,是一种点对点的通信接口,可同时支持多个外围设备。

设计一款符合USB2.0规范的串行通信接口芯片,作为与任意外围设备与计算机的互连接口,具有重要的意义。

在硬件方面,本文所设计的芯片主要设计了5个主要的模块:

主接口电路模块、存储器接口与优先级判别模块、控制/状态寄存器模块、协议层模块和数据通用收发宏单元接口模块。

主接口电路是内部数据寄存器、控制寄存器与外部设备之间的通信桥梁。

此外,协议层模块与内部数据存储器、控制寄存器和数据通用收发宏单元接口连接,负责保持通信数据的格式符合USB2.0规范中的协议格式。

数据通用收发宏单元接口模块与USB物理层连接,PHY模块负责将数据发送到与USB连接器相连的计算机,或接受来自计算机的数据。

在软件方面,本文使用Verilog语言写下了各模块的电路描述程序。

同时利用QuartusII软件进行了系统调试和系统编译。

通过设计这款符合USB2.0规范的串行通信芯片可以同时支持16个节点,支持全速和高速两种通信模式,其速率分别达到12Mbit/s和480Mbit/s。

同时该芯片还提供了功能强大的存储器接口和WISHBONE电路接口,实现了存储器和芯片间的互联。

5.期刊论文李吉琴DSP的串行通信TMS320F240与PC机串行通信的设计-福建电脑2008,

(1)本文采用PC机做主机、DS

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2