单片机与PC机多串口通信设计_第1页
单片机与PC机多串口通信设计_第2页
单片机与PC机多串口通信设计_第3页
单片机与PC机多串口通信设计_第4页
单片机与PC机多串口通信设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 单片机与PC机串口通信设计*( 物理与电信工程学院电子信息工程专业,2011级3班, 陕西) 指导老师:*摘要串行通信作为一种基本而又灵活方便的通信方式,被广泛应用于PC与PC或者PC与单片机之间的数据交换中。本次课设通过PC机的RS-232串行接口与单片机串行接口之间的电平匹配,解决了上位机与下位机之间的通信问题。关键词:串行通信 ;单片机 ;PC机串口目 录1.设计题目2 1.1题目内容.2 1.2实现目标2 1.3设计要求22.设计报告正文2 2.1串行通信概述2 2.1.1串行通信的原理2 2.1.2 8051单片机的串行接口结构3 2.1.3串行通信的数据传送方式4 2.2通信协议

2、的采用5 2.3电平转换设计63.调试结果(负责部分)8 3.1二进制的调试8 3.2字符串的调试8 2. 3波特率的调试94.设计总结11 4.1调试中遇到的问题及解决方法11 4.2心得体会11参考文献121.设计题目1.1题目内容单片机与PC机串口通信实现1.2实现目标1.掌握串口通信基本原理;2.掌握一种单片机基本操作与实现;3.熟悉和掌握VB程序编写;1.3设计要求1.设计电路原理图,并搭建电路;2.编制PC机与单片机通信的协议;3.完成单片机和PC机软件编写与调试;4.测试并完成报告。2.设计报告正文2.1串行通信概述2.1.1串行通信的原理通信的基本方式可分为并行通信与串行通信1

3、两种。并行通信:是将组成数据的各位同时传送,并通过并行门(如P1口等)来实现。在并行通信中,数据传送线的根数与传送的数据位数相等,传送数据速度快,但所占用的传输线位数多。因此,并行通信适合短距离通信。如图2-1所示。串行通信:是指数据一位一位地按顺序传送。串行通信通过串行口来实现。在全双工的串行通信中,仅需要一根发送线和一根接收线,串行通信可大大节省传送线路的成本,但数据传送速度慢。由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。如图2-2所示。 图2-1并行通信示意图 图2-2串行通信示意图串行通信有同步通信和异步通信两种基本方式。(1)异步通信方式(Asynchron

4、ous Communication):数据通常是以字符(或字节)为单位组成字符帧传送的。发送方发送各个字符的间隔时间是不定的,收发双方各用自己的时钟源来控制发送和接收,这两个时钟源彼此独立,互不同步。接收端是依靠字符帧格式来判断发送端是何时开始发送及何时结束发送。平时,发送线为高电平(逻辑“1”),每当接收端检测到传输线上发送过来的低电平逻辑“0”(字符帧中起始位)时,就知道发送端已开始发送,每当接收端接收到字符帧中的停止位时,就知道一帧字符信息己发送完毕。(2)同步通信方式(Synchronous Communication):是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的

5、信息帧和异步通信中的字符帧不同,通常有若干个数据字符。同步字符帧由同步字符、数据字符和校验字符三部分组成。同步字符位于帧结构开头,用于确认数据字符的开始(接收端不断对传输线采样,并把采到的字符和双方约定的同步字符比较,只有比较成功后才会把后面接收到的字符加以存储);数据字符在同步字符之后,个数不受限制,由所需传输的数据块长度决定;校验字符有12个,位于帧结构末尾,用于接收端对接收到的数据字符的正确性的校验。在本次课程设计中采用的是串行异步通信方式。2.1.2 8051单片机的串行接口结构8051单片机串行接口是一个可编程的全双工串行通信接口2。它可用作异步通信方式(UART universal

6、 asynchronic reciever and transmitter),与串行传送信息的外部设备相连接,或用于通过标准异步通信协议进行全双工的8051多机系统也能通过同步方式,使用TTL或CMOS移位寄存器来扩充I/O口。8051单片机通过管脚RXD(P3.0,串行数据接收端)和管脚TXD(P3.1,串行数据发送端)与外界通信。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。如图2-3串行接口结构示意图。图2-3串行接口结构示意图2.1.3串行通信的数据传送方式在串行通信中,

7、数据是在两个站之间传送的。按照数据传送方向,串行通信可分为单工、半双工和全双工三种传送方式。如图2-4。单工方式:通信线的一端接发送器,另一端接接收器,它们形成单向连接,只允许数据按照一个固定的方向传送。数据只能单方向传送。半双工方式:数据能够实现双方向传送,但任何时刻只能由其中的一方发送数据,另一方接收数据。全双工方式:系统的每端都含有发送器和接收器,数据可以同时在两个方向上传送。图2-4 串行通信数据传送2.2通信协议的采用1.方案采用的依据串行通信中,只有通信双方采用相同的接口标准,才能进行正常的通信。由于不同设备串行接口的信号线定义、电器规格等特性都不尽相同,因此要使这些设备能够相互连

8、接,需要一个统一的串行通信接口。在本次设计中,采用RS-232协议作为通信协议。RS-232(又称EIA RS-232C)是目前最常见的一种串行通信接口标准,它是在1970年由美国电子工业协会联合贝尔系统、调制解调器厂家及计算机终端生厂厂家共同制定的用于串行通信的标准。RS-232适合于数据传输速率在020 000bit/s范围内的通信。这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定,作为一种标准在微机通信接口中广泛采用。由于单片机系统使用的是TTL电平,单片机中的串口输出的信号也是如此,但是串行通信中使用的RS-232C通信协议,二者的电平并不相同,在和单片机进行通信

9、时,还需要有一定的外围电路的配合,使得单片机的通信电平和标准的串行通信协议3相匹配。2.RS-232C的电器特性、逻辑电平和各种信号线功能TXD、RXD:高电平(逻辑1)为-5V-15V,低电平(逻辑0)为+5+15V。RTS、CTS、DSR、DTR和DCD:控制线,信号有效(接通,ON状态,正电压)时的电平为+5V+15V,信号无效时(断开,OFF状态,负电压)的电平为-5V-15V。对于RS-232C的信号而言,当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-5V+5V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义。所以,RS-232C是用正负电压来表示逻辑状态

10、,与TTL以高低电平表示逻辑状态的规定不同。为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。RS-232C中的RS是英文“推荐标准”的缩写,232为标示号,C表示修改的次数。RS-232C总线标准规定了21个信号和25个引脚,包括一个主通道和一个辅助通道,在多数情况下主要使用主通道。设计中采用的是简化的9芯D型连接器(DB9)。对于一般双工通信,仅需要几条信号线就可以实现,包括一条收发线、一条接收线和一条地线。也就是RS-232C连接的最简单形式:3线制,如表2.1为计算机9芯串口引脚信号功能。 表2.1计算机9芯串口引脚信号功

11、能脚号信号名称方向信号功能123456789DCRXTXDDTRGNDDSRRTSCTSRI对方至PC机对方至PC机PC机至对方PC机至对方对方至PC机PC机至对方对方至PC机对方至PC机PC机收到远程信号(载波检测)PC机接收数据发送数据PC机准备就绪信号地对方准备就绪PC机请求接收数据双方已切换到接收状态(清除发送)通知PC机,线路正常(振铃指示)2.3电平转换设计1.设计方法和其他的单片机器件一样,作为单片机的标准外围电路,串口的电平转换也有专用的芯片,但也可以使用三极管自行调整电平匹配。本次设计我主要采用专用芯片进行电平转换的方法。目前较为广泛的是使用集成电路转换器件,如MC1488、

12、SN75150芯片可完成TTL电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换4。MAX232芯片可完成TTL和RS-232C的双向电平转换。在这里我采用的芯片是MAX232。 2.MAX232 的引脚介绍MAX232 的引脚主要为5个部分。(1)外接电容:有5个外接电容、进行电压匹配和电源去耦。(2)TTL的输入:电路TTL电平的输入引脚11和10引脚,连接单片机的TXD输出端口。实验中MAX232 的11引脚与单片机的P3.1引脚相连。(3)TTL的输出:电路TTL电平的输出引脚12和9引脚,连接单片机的RXD输出端口。实验中MAX232 的12引脚

13、与单片机的P3.0引脚相连。(4)RS-232的输入:两路RS-232电平的输入引脚13和8引脚,连接RS-232的TXD的输出端口。实验中MAX232 的13引脚与RS-232的2引脚相连。(5)RS-232的输出:两路RS-232电平的输出引脚14和7引脚,连接RS-232的RXD的输出端口。实验中MAX232 的14引脚与RS-232的3引脚相连。通过MAX232的TTL和RS-232 的输入/输出端口,自动地调节了单片机串口的TTL电平信号和RS-232的串行通信信号的电平匹配,如图2-5所示。图2-5 TTL电平信号和RS-232的串行通信信号的电平匹配示意图3.电平转换芯片与单片机

14、、RS-232的连接地址分配和连接:只列出和系统相关的、关键部分的单片机与各个模块管脚的连接和相关的地址分配。MAX232的11引脚:MAX232 的TTL电平输入引脚,连接单片机的TXD,TTL串口输入信号。MAX232的12引脚:MAX232的TTL电平输出引脚,连接单片机的RXD、TTL串口输入信号。MAX232的14引脚:MAX232 的RS-232电平输出引脚,连接RS-232的RXD,RS-232的串口输入信号。MAX232的13引脚:MAX232 的RS-232电平输入引脚,连接RS-232的TXD,RS-232的串口输出信号。4.用于MAX2325的电器元件的选择一个+5V的电

15、源、五个1u的电容和若干导线。3.调试结果3.1二进制的调试开始时按下复位开关,选择“十六进制发送”与“十六进制显示”。按下数值增加按键,按下4次;再按下数值减少按键,按下5次。在整个过程当中,当按下数值增加或减少按键时,同时观察LED显示的二进制与在上位机接收区的数值是不是一致。在上面完成无误后,再在上位机的发送区输入“00”并按下手动发送,观察在接收区的数值是否与“00”一致。如图3-1所示为以上操作的结果。图3-1 二进制调试结果示意图3.2字符串的调试开始时按下复位开关,选择“字符格式发送”与“字符格式显示”。在上位机的发送去输入“cai jie shi xue sheng”并按下手动

16、发送,然后观察接收区接收到的信息是否一致。操作结果如图3-2所示。 图3-2 字符串调试结果示意图2. 3波特率的调试开始时按下复位开关,选择“字符格式发送”与“字符格式显示”。选择波特率9600,此时可以在上位机的接收区显示“success!”,这表明现在上位机和单片机的波特率都已经是9600。然后再输入“cai jie shi xue sheng”同时在接收区可以观察到显示同样的字符串。结果如图3-3所示。图3-3 波特率为9600的调试结果示意图再在波特率的窗口选择4800,此时可以在上位机的接收区显示“”, 这表明现在上位机和单片机的波特率都已经是4800。然后再输入“cai jie

17、shi xue sheng”同时在接收区可以观察到显示同样的字符串。结果如图3-4所示。 图3-4波特率为4800的调试结果示意图再在波特率的窗口选择2400,此时可以在上位机的接收区显示“&3”, 这表明现在上位机和单片机的波特率都已经是2400。然后再输入“cai jie shi xue sheng”同时在接收区可以观察到显示同样的字符串。结果如图3-5所示。图3-5波特率为2400的调试结果示意图再在波特率的窗口选择1200,此时可以在上位机的接收区显示“圹”, 这表明现在上位机和单片机的波特率都已经是1200。然后再输入“cai jie shi xue sheng”同时在接收区可以观察

18、到显示同样的字符串。结果如图3-6所示。图3-6波特率为1200的调试结果示意图4.设计总结4.1调试中遇到的问题及解决方法在开始进行调试时,先是在开发板上进行调试。在开发板上成功后,有负责做硬件的同学开始做实物部分。在实物完成后,就将之前的单片机程序烧到单片机里面,然后在与用VB编写的界面进行调试。在调试时发现单片机的程序怎么也烧不进去,在将MAX232这块最小系统从新焊了几个还是出现相同的结果。于是,就将原来的电容为0.1uf改成了1uf后,操作可以正常进行。当在上位机的发送区以十六进制发送数据时,在接收区以十六进制显示却出现了乱码。在分析各方面因素后,最终认定为是12MH的晶振出了问题。在查及关于晶振方面的资料后,发现当波特率为9600(初始设定值)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论