PC机与单片机串口通信.docx
- 文档编号:4448114
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:13
- 大小:501.18KB
PC机与单片机串口通信.docx
《PC机与单片机串口通信.docx》由会员分享,可在线阅读,更多相关《PC机与单片机串口通信.docx(13页珍藏版)》请在冰豆网上搜索。
PC机与单片机串口通信
单片机课程设计报告
项目名称:
PC机与单片机串行通信
项目组成员:
(1)姓名:
(2)姓名:
(3)姓名:
专业班级:
日期:
2011年12月8日
目录
第一章绪论---------------2
1.1课题简介2
1.2设计目的2
1.3设计任务2
1.4设计方法3
第二章设计内容与所用器件3
第三章方案论证与比较-----------------------------------------------------4
第四章硬件系统设计--------------------------------------------------------8
4.1单片机8
4.2连接器RS2328
4.3电平转换MAX2328
4.4PC机8
4.5、单片机时钟电路9
4.6、单片机复位电路10
第五章软件设计11
5.1单片机通讯软件11
5.2发送和接收过程设计11
5.3程序代码--------------------------------------------------------------12
总结14
第一章绪论
1.1课题简介
单片机与PC机间的通信,特别是PC机与多台单片机构成小型分布系统实现分级分布式控制得到了广泛的应用。
单片机由于性价比高、使用灵活等优点而广泛应用于各种电子系统、自动控制系统,但是存储容量小,处理的数据量不大。
为了克服这一缺点,可以将单片机连接到PC机上,由单片机采集数据,然后将数据汇总到PC机,再进行各种数据处理。
本课题实现的是PC机与单片机的串行通信。
1.2设计目的
掌握串行口工作方式的程序设计,掌握单片机串行通信程序的编写方法;了解实现串行通信的硬件环境、数据格式、数据交换协议;了解PC机与单片机串行通信的基本要求,最终实现PC机与单片机的数据交换。
1.3设计任务
在本次课程设计中,主要完成如下方面的设计任务:
1、简要阐述PC机与单片机串行通信的基本原理;
2、了解PC机与单片机的数据转换功能及其工作过程;
3、完成主要功能模块的硬件电路设计及必要的参数确定;
4、完成发送程序与接收程序的设计;
5、用protel软件完成原理电路图的绘制;
1.4设计方法
PC机和单片机在进行通信时,首先分别对各自的串行口进行初始化、确定串行口工作方式、设定波特率、传输数据长度等,然后才开始数据传输,这些工作是由软件来完成的,因此对PC机和单片机均需设计相应的通信软件。
第二章设计内容与所用器件
2.1基本功能:
实现PC机与单片机的串行通信。
2.2可选器件:
8051单片机、PC机、连接器RS-232、电平转换MAX232
2.3串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。
串行通信的特点:
传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。
2.4串口的结构
第三章方案论证与比较
硬件部分的设计方案论证与选择
现论述几种实现PC机和单片机串行通信的硬件接口设计,其中包括RS232标准接口、RS422标准接口、20mA电流环路串行接口以及利用调制解调器实现远程通信。
1 接口电路的设计
1.1 近程通信
目前,PC机是利用异步通讯控制器来实现串行通讯的,其核心是8250通讯芯片加上一些收发逻辑电路。
接口标准大多是RS232标准,其通讯距离小于15m,传输速率小于20kb/s。
RS232标准是按负逻辑定义的,他的“1”电平在-5~-15V之间,“0”电平在+5~+15V之间。
由于PC机使用的是TTL电平信号,因此数据输出时必须把TTL电平信号转换成RS232标准电平;数据接收时把RS232标准信号转换成TTL电平信号。
实现这种功能的常用芯片是传送线驱动器MC1488和接收器MC1489,其作用除了电平转换外,还实现正负逻辑电平转换。
如图1和图2所示。
PC机的串行口适用25针D型插座,其中RTS(请求发送,输出)和CTS(清除发送,输入),DSR(数据准备好,输入)和DTR(数据终端准备好,输出),分别连在一起,这是因为PC机的BIOS中的INT14H(串行通讯程序)在接收和发送数据时均要判断CTS和DSR是否有效。
8098与RS232标准接口电路图如图3所示。
2.2 远程通信
(1)RS422标准接口
虽然RS232应用很广,但由于数据传输速率慢,通讯距离短,特别是在100m以上的远程通讯中难以让人满意,因此通常采用RS422,RS449,RS423及RS485等接口标准来实现远程通讯。
这里以RS422为例。
RS422接口标准通过提供平衡电路来改进接口电气特性,通过传输线驱动器将逻辑电平变为电位差,实现信息传送。
通过传输线接收器将电位差变为逻辑电平,实现信息接收。
因而可以支持较高的传输速率和较长的传输距离,在最大传输率10Mb/s的情况下,电缆允许长度为120m;如果采用低传输率,如90kb/s时,最大距离可达1200m。
RS422每个通道用两条信号线,一条为逻辑“1”,一条为逻辑“0”。
RS422A电路由发送器,接收器,平衡连接电缆,电缆终端负载,接收器等部分组成,通常采用点对点通信方式。
该标准允许驱动器输出为目前RS422A与TTL的电平转换常用芯片是驱动器SN75174和接收器SN75175。
该标准允许驱动器输出为±2~±6V,接收器可以检测到的输入信息电平可低到200mA。
采用光隔离的RS422标准来实现8098与PC机的远程通信的通讯接口电路如图4所示。
(2)20mA电流环路串行接口
20mA电流环是目前远程通讯广泛使用的另一种接口。
其原理如图5所示,发送正和负,接受正或负4根线组成一个输入回路和一个输出回路。
由于20mA电流环是一种异步串行接口标准,所以每次发送数据时必须以无电流的起始作为字符的起始位,接收端检测到起始位便开始接收数据。
电流环路串行接口的优点是低阻抗传输线对电气噪声不敏感,以实现光电隔离,有利于长距离传输。
图6为一个带光电隔离的20mA电流环接口线路图。
发送端将TTL电平转为环路电流信号,在接收端又转换成TTL电平。
(3)Modem实现远程通信
尽管RS232总线标准无法实现远程数字通讯,但由于电话网络的普及,利用Modem和现有电话线实现PC机和单片机的远程双向通讯也是工业控制系统中广泛采用的一种方法。
基本原理框图如图7所示。
通常外置式Modem具有RS232接口,通过DB9插头可与计算机RS232口相连接。
如果单片机串行口直接与Modem接口,由于没有握手信号,只能保证单个字节传输的正确,对大量数据的传输将导致数据丢失,这点可通过软件处理来避免;如果采用单片机的I/O口与Modem握手,将占用单片机I/O口资源。
因此一般采用前一种方法实现对Modem接口。
本文仅以Modem芯片MSM7512B为例,阐述一下接口电路的设计。
由于PC机与Modem芯片的接口已非常普及,现仅将8098和MSM7512B的接口电路画出。
如图8所示。
MSM7512B主要由调制器、解调器、接口控制逻辑组成。
AI是解调器的输入端;AO是调制器输出端。
通过控制MOD1,MOD2可使MSM7512B工作在4种不同的工作方式。
在工作时,计算机首先检测CD端。
若为高电平,表明Modem处于等待与上位机通信状态;若其为低电平,则标明Modem已和上位机建立数据通道。
而要想使Modem发送数据,应置RS脚为低电平。
单片机发送和接收数据就是对串行通信口写和读,可采用中断或查询方式工作。
2 结 语
上述是工业控制系统中比较实用的串行通信接口电路设计,在具体的控制系统中可根据要求编制相应的软件程序来实现近程或远程的PC机与单片机串行通信。
先级高的预留抢占优先级低的预留资源,同时设置一个时间阀值T,该阀值用于使级别低的预留得到资源,当网络处于阻塞状态时,级别低的预留可能永远得不到预留资源,当该级别预留请求时间大于T时,他就会抢占比他级别高已预留的资源。
第四章硬件系统设计
目前,计算机控制系统已逐步从单机控制发展成为多机控制并出现了以计算机技术为核心,与数据通讯技术相结合的集检测、控制和管理为一体的计算机网络,即集中分布式测控系统。
其中单片机作为从机,负责现场控制和实时数据的采集;PC机作为主机,负责对各从机发来的数据进行分析、处理,并向各从机发布命令,以实现对工业现场的集中监控与管理。
由于主从机需不断进行信息交流,因此通信成为分布式测控系统重要而基本的功能。
1 基本原理
PC机与单片机之间通常采用2种通信方式:
并行通信和串行通信。
并行通信是指将待发送数据的各位同时传送,串行通信则将数据一位一位地按顺序传送。
并行通信虽然传输效率高,由于所需硬件设备复杂,不适于长距离通信,所以一般只适用于要求实时性强,传送速率较高的控制系统中,实用面较窄;相比之下,串行通信简单易实现,传输距离较长,所以已被广泛应用于各种工控系统中。
同步通信是指通过在每个数据块开始时的同步字符来实现收/发双方同步的一种数据传输方法,常用于信息量大,速度要求高的场合;异步通信则规定了标准的字符数据传输格式,即每一帧信息由起始位、数据位、奇偶校验位和停止位组成。
由于有冗余位,所以传送效率不高,常用于信息量不大,速度较低的场合。
在计算机测控系统中,由于串行接口的标准化,一般采用异步串行通信方式,以提高其通用性。
由于各种接口的机械和电器特性有所差异,串行通信分为近程通信和远程通信。
2连接器RS-232C
RS-232C是用正负电压来表示逻辑状态,与TTL与高低电平表示逻辑状态的规定不同。
因此,为了能够同计算机接口或终端的TTL期间连接,必须在RS-232C与TTL电路之间进行点评与逻辑关系的变换。
RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道。
(1)电气特性
EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定。
在TxD和RxD上:
逻辑1(MARK)=-3V~-15V
逻辑0(SPACE)=+3~+15V
在RTS、CTS、DSR、DTR和DCD等控制线上:
信号有效(接通,ON状态,正电压)=+3V~+15V
信号无效(断开,OFF状态,负电压)=-3V~-15V
(2)机械特性
由于RS-232C并未定义连接器的物理特性,因此,出现了DB-25、DB-15和DB-9各种类型的连接器,其引脚的定义也各不相同。
1.DB-25:
PC和XT机采用DB-25型连接器。
DB-25连接器定义了25根信号线。
2.DB-9:
在AT机及以后,不支持20mA电流环接口,使用DB-9连接器,作为提供多功能I/O卡或主板上COM1和COM2两个串行接口的连接器。
它只提供异步通信的9个信号。
(3)接口信号
RS-232C的功能特性定义了25芯标准连接器中的20根信号线,其中2条地线、4条数据线、11条控制线、3条定时信号线,剩下的5根线作备用或未定义。
(4)RS-232的接线
在工程当中经常会用到232口,一般是圆头8针与D型9针两种串口。
3电平转换器MAX232:
MAX232的主要特点
1、符合所有的RS-232C技术标准
2、只需要单一+5V电源供电
3、片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V-
4、功耗低,典型供电电流5mA
5、内部集成2个RS-232C驱动器
6、内部集成两个RS-232C接收器
7、高集成度,片外最低只需4个电容即可工作。
4单片机时钟电路
时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。
在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。
此电路采用12MHz的石英晶体。
时钟电路如下图2-2:
图2.2时钟电路
5单片机的复位电路
复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误是系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。
RST引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即2个机器周期)以上,若使用频率为12MHz的晶振,则复位信号持续时间应超过4
s才能完成复位操作。
复位操作有上电自动复位和按键手动复位两种方式。
上电自动复位是通过外部复位电路的电容充电来实现的。
按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的。
在本设计中采用了按键电平复位方式,其复位电路如下图2-3。
图2-3、复位电路
第五章软件设计
将PC机键盘的输入发送给单片机,单片机收到发来的数据后,回送统一数据给PC机,并在屏幕上显示出来。
只要屏幕上的字符与所键入的字符相同,说明两者之间可以正常通讯。
双方约定:
波特率为2400bit/s,通信格式为8个数据,一个停止位,无奇偶校验位。
5.1单片机通讯软件。
单片机通过中断方式接收PC机发送的数据,并送回。
根据信息格式,可以设定单片机的串行口工作方式1,。
再传下那个口方式1中,波特率是有定时器T1产生的。
如晶振为6MHZ,波特率为2400bit/s,这时T1工作方式2经计算,他的初始值应为F3H,SMOD=1.
程序流程框图
5.2发送和接收过程设计
串行口的发送过程由指令MOVSBUF,A启动,即CPU由一条写发送缓冲器的指令把数据(字符)写入串行口的发送缓冲器SBUF中;再由硬件电路自动在字符的始、末加上起始位(低电平)、停止位(高电平)及其它控制位(奇偶位);然后在移位脉冲的控制下,低位在前,高位在后,从TXD端(方式0除外)一位位地向外发送。
串行口的接收与否受制于允许接收位REN的状态,当REN被软件置“1”后,允许接收器接收。
接收端RXD一位位接收数据,直到收到一个完整的字符数据后,控制电路进行最后一次移位,自动去掉起始位,使接收中断标志位RI置“1”,并向CPU申请中断。
CPU响应中断,用一条指令MOVA,SBUF把接收缓冲器SBUF的内容读入累加器A。
5.3程序代码
ORG0000H
LJMPMAIN;主程序入口
ORG0023H
LJMPINTS;串行口中断入口
ORG0100H
MAIN:
PUSHA
MOVTMOD,#20H;初始设置定时器1为方式2
MOVTH1,#0F4H;波特率2400bit/s
MOVTL1,#0F4H
SETBTR1;启动定时器1
MOVSCON,#50H;串行口工作在方式1,允许接收
MOVPCON,#80H;SMOD=1
SETBEA;开CPU中断
SETBES;开串口中断
LOOP:
SJMPLOOP;等待数据接收
INTS:
CLREA;禁止中断
CLRRI;清除中断标志PI
MOVA,SBUF;从SBUF取接收到的数据
MOVSBUF,A;回送
WAIT:
JNBTI,WAIT;判断回送是否完成
CLRTI;清除TI标志
POPACC;发送完恢复现场
SETBEA;恢复中断,准备重新接收数据
RET
初步构想程序
ORG0000H
AJMPSTART
ORG0030H
START:
MOVR1,#00H;给R1赋值
MOVTMOD,#20H;设定定时器工作模式方式2
MOVTL1,#0FAH;赋初值
MOVTH1,#0FAH
SETBTR1;开定时器T1
MOVSCON,#50H;串口初始化设定方式1
MOVR0,#0A0H
SETBES;开串口中断
SETBEA;开所有中断
LOOP:
JNBRI,$;等待数据传送
CLRRI;RI清零
MOVA,SBUF;数据接收
MOV@R0,A;将接收到的数据送R0
MOVP1,A
INCR0
INCR1
CJNER1,#5H,LOOP;判断数据是否接收完
MOVR1,#00H
MOVR0,#0A0H
LOOP1:
MOVA,@R0
MOVR1,A
INCR0
MOVSBUF,A;数据回送
JNBTI,$;判断数据是否送完
CLRTI
INCR1
CJNER1,#05H,LOOP1
MOVR0,#0A0H
MOVR1,#00H
AJMPLOOP
总结
这次单片机课程设计不仅巩固了以前所学过的知识,而且学到了很多在书本上没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。
同时在设计的过程中发现了自己的不足之处,例如对以前所学过的知识理解得不够深刻,掌握得不够牢固,学习了单片机汇编语言。
经过这几周的努力,终于顺利的完成了单片机课程设计。
这是一个提高自学能力,理论联系实际的过程。
从课题的选择开始,硬件和软件系统的设计、到最后的实验报告的完成,这其中经历了很多困难,但是更重要的是在这个过程中我得到了很大的锻炼。
一方面通过单片机等一些功能的设计让我学习和掌握了单片机技术的基础知识和技术要点,也使以前学的很多知识都得到了运用;当然,这是一个需要不断的尝试,不断的校核,不断的修改,最后完成一个合理的设计的过程。
需要的是细心和耐心。
在很大程度上培养了我们坚持合作的精神,使我们都受益匪浅。
通过本次课设,我不仅学到了关于单片机技术方面的许多专业知识,同时也让我们感觉到团队合作的重要性。
其实仅凭自己的一己之力是什么都干不成的,所有的一切都在乎于合作。
这次课题设计让我们对如何有效和快速的找到资料有了新的认识。
网络是个好得媒介,通过网络可以得到很多有用的东西,在其中,我们也是受益匪浅,利用好图书馆和网络,使资源得到最好的利用。
与他人交流思想是取得成功的关键,在交流中,不仅强化了自己原有的知识体系,也扩展了自己的思维。
课设是一个通过思考、发问、自己解惑并动手、提高的过程。
我会在以后的学习中不断学习,积累经验,完善自己。
这里我要感谢老师,没有老师的细致讲解和耐心的检查,也就没有我们的提高,非常感谢!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PC 单片机 串口 通信