检测机器人调试系统的设计.docx

上传人:夺命阿水 文档编号:1029859 上传时间:2024-03-01 格式:DOCX 页数:63 大小:484.95KB
返回 下载 相关 举报
检测机器人调试系统的设计.docx_第1页
第1页 / 共63页
检测机器人调试系统的设计.docx_第2页
第2页 / 共63页
检测机器人调试系统的设计.docx_第3页
第3页 / 共63页
检测机器人调试系统的设计.docx_第4页
第4页 / 共63页
检测机器人调试系统的设计.docx_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《检测机器人调试系统的设计.docx》由会员分享,可在线阅读,更多相关《检测机器人调试系统的设计.docx(63页珍藏版)》请在课桌文档上搜索。

1、毕业设计报告(论文)报告(论文)题目:检测机器人调试系统的设计当今石油和天然气已经成为了世界上最为重要的能源,而在油气的输送控制过程中会遇到各种各样的问题。本设计就是以油气管道检测控制系统为背景展开,通过分析油气管道检测对于油气运输的重要,指出了本设计的必要性,根据设计要求及对各硬件结构的了解,完成对如芯片、下载电路等硬件设备的选型,通过对比不同通讯方式的特点选择符合本设计的方案。根据串口通信中数据传输时所存在的问题,编写符合设计要求的通讯协议,更好的满足人机交换信息时的正确性与稳定性。关键词:管道检测STM32CubeMX串口通信通讯协议AbstractNowadays,oilandnatu

2、ralgashavebecomethemostimportantenergysourcesintheworld,andvariousproblemswillbeencounteredintheprocessofoilandgastransportationcontrol.Thisdesignistooilandgaspipelinedetectioncontrolsystemasthebackground,throughtheanalysisoftheimportanceofoilandgaspipelinetestingforoilandgastransportation,pointsout

3、thenecessityofthedesign,accordingtothedesignrequirementsandtheunderstandingofthehardwarestructure,suchaschips,downloadcircuitiscompletedbyhardwareselection,bycomparingthecharacteristicofdifferentcommunicationmethodsselectioninaccordancewiththedesignscheme.Accordingtotheproblemsofdatatransmissioninse

4、rialcommunication,thecommunicationprotocolthatmeetsthedesignrequirementsiswrittentobettermeettheaccuracyandstabilityofman-machineinformationexchange.Keywords:PipelinedetectionSTM32CubeMXsoftwareSerialportcommunicationprotocol摘要IABSTRACTII1.1 课题背景11.2 油气管道检测的安全性以及国内外发展状况21.2 .1油气管道检测的安全性21.2.2油气管道检测技

5、术的国内外发展状况21.3 课题意义3第2章系统硬件的选型42.1系统的工作原理42.2串口通信协议42.2.1通信方式72.3硬件部分介绍82.3.1STM32F103ZET6芯片的介绍82.3.2USB串口92.3.3SWD下载调试接口92.4RS232串口通信102.4.1TTL转RS232电平转换102.4.2MAX232芯片122.4.3USB转串口芯片CH340122.5DMA传输132.5.1DMA的基本介绍142.5.2DMA的主要特点142.5.3DMA工作框图142. 6小结15第3章系统软件部分概况163. 1STM32CubeMX软件简介163.2系统软件设计163.2

6、.1STM32CubeMX初始化配置163.2.2KeiI编写串口通信协议173.3小结204.1 软件调试214.2 结果及分析21第5章总结23致谢24参考文献25附录27北华航天工业学院4141本科毕业设计(论文)成绩单第1章绪论1.1 课题背景近几年,随着世界对能源需求越来越大,能源已经成为任何一个国家发展的命脉,并受到了越来越多的关注。中国作为世界上最大的发展中国家,能源自然是重中之重。为了保证我国的能源供应,我国积极在自己国土上发掘油田,并广泛进口国外原油。当今,我国的石油供应呈现出多元化的趋势。包括管道、陆运、铁路、海运等。如今,如何在石油产品多元化的背景下找到各种运输方式中成本

7、最低的方案,已经成为了一个重要的课题。油气管道运输与其它运输方式相比,具有运输成本低,占地面积小,建设速度快,油气运输量大,安全性高,运输过程中损耗少的优点。因此当今油气管道运输在当今得到了广泛的应用。但近几年,有些建设较早的油气管道存在着管道老化等问题,在输送油气时管道可能会出现泄露问题,这会严重影响生产力的发展,造成重大的经济损失,同时会对环境造成巨大破坏。因此管道检测技术的发展也被摆在了更加重要的位置。油气管道泄漏的主要原因如下:1 .建设时施工质量存在问题此类问题所产生的隐患,很有可能是管道后期会发生泄漏的一个重要因素,这主要表现在施工过程中粗制滥造,偷工减料,使用不合格的材料,比如在

8、管材和管件以次充好、以薄代厚、选用不合格的材料或者焊接的工艺不合格等。有时也可能是管道的保护措施没有做到位,比如管道的配重块设置不到位、水密保护做的不够好等,这些都有可能会使管道因受到冲击而造成受损或者泄漏,甚至会引发火灾、爆炸等,对人生命安全造成重大隐患。2 .管道腐蚀所造成的问题腐蚀也是导致管道泄漏的一个重要因素,其主要表现为:管道的防腐性随着使用寿命的增加而逐渐产生老化,直至发生故障,进而导致管道泄漏,特别是在管道的转弯处,由于长期遭到输送的油气的冲击,所以,这个地方的腐蚀比其它地方更快。另外,在施工过程中,如果没有对防腐涂层进行有效的防护,也会导致管道的防腐层被破坏。由于以上因素可能会

9、造成漏点,这些泄漏点非常微小,几乎无法用肉眼观察,有些漏点虽然不会对管道本身造成损坏,但在防腐期间,它已无法满足使用要求。在使用后,由于局部的腐蚀,很可能出现穿孔的现象,造成管道泄漏,进而降低管道的使用寿命。3 .阴极保护失效所造成的问题阴极保护是一种防止管道腐蚀的手段,其基于的是电化学腐蚀的原理。阴极保护的出现大大增加了管道的使用寿命。如今阴极保护技术已经发展的相当成熟了,并且得到了广泛的应用。其主要包括,牺牲阳极阴极保护及外加电流保护,但是无论采用哪一种或者两种均采用,其要求就是管道各项的绝缘措施都不能存在任何问题,这些都需要管道的漏点均在一定的范围之下。在使用时需要定期检查维护阴极系统,

10、并且需要为确保阴极系统的正常工作需要不断的外加电流对系统进行供电。若阴极系统失效或者停止运行后,可能会加速管道的腐蚀,最终导致油气管道穿孔并发生泄漏。1.2 油气管道检测的安全性以及国内外发展状况1.2.1 油气管道检测的安全性近年来,随着对能源的利用,管道运输逐渐成为了工业现代化以及国民经济的重要部分而油气管道的安全性也就成为了影响管道运输的一个重要因素,因此管道检测技术的发展也就变得比以往更加重要。综上所述,造成管道泄露的原因与管道长期使用所造成的管道内壁的腐蚀及管道施工时的质量不无关系。当今管道泄漏所造成的事故越来越频繁,由于管道输送的多为石油天然气等都较为危险,因此如果管道存在泄漏,不

11、仅会对管道造成损害,甚至会对人们的生命财产造成重大损害,污染自然环境并且会对国民经济造成重大损失。如果管道泄漏未能及时被发现,甚至会造成更为严重且不可逆的后果。相反倘若能够及时的发现缺陷,准确找到泄漏点,将会大大降低甚至避免因管道泄漏所造成的损失,极大的保护了人民的财产安全,确保石油、天然气公司的正常运转。因此管道检测设备及对其进行控制和调试的发展也就变得极为重要。此部分以石油天然气管道检测行业中的安全性及国内外发展现状,简单介绍了造成管道泄漏的几个主要原因,并对它们在实际运用中所面临的问题进行了分析,针对这些问题提出相应的解决措施。1.2.2 油气管道检测技术的国内外发展状况当今世界管道内检

12、测技术发展的非常迅速,此项技术的优点是在不影响管道输送的情况下,检测机器人也可通过自身携带的检测设备完成对管道缺陷的检测并准确的找到泄漏点。检测技术目前已经发展出激光检测技术、电视测量法、涡流检测法、电磁超声检测法、漏磁通法、超声波法等多项检测技术。相比与国外,我国管道探测技术发展仅有40多年,二十世纪八十年代初,我国已开展了大量的科研工作,并且已经取得了一定的成果,但并没有真正地应用于工业生产。直到1994年我国从美国引进管道检测设备才开始对漏磁管道检测设备着手进行的研发及应用。经过我国研究人员这么多年不懈努力,我国的管道检测技术已经取得了巨大的进步。这几十年里我国从引进全套外国设备,到对其

13、进行消化吸收再到研制本设计自己的管道高精度检测设备,最终本设计已经有了自己的全套国产化、系列化的检测设备。现在我国的漏磁检测技术的水平与国际上相比已经非常接近了。但是我们也应看到国内在超声检测技术等方面相较于国外先进水平仍处于较为初级的阶段。国外管道检测技术的发展状况:目前国外从事管道检测的公司中,技术成熟的有NDT公司、TDW公司、ROSEN公司和GE公司等。这些公司的生产的检测设备具有检测速度块,更够为工人快速的提供检测报告;检测精度高,能够准确确定管道泄漏的位置;反应速度快,可以快速发现泄漏的位置,降低因管道泄漏所造成的环境和财产损失;自动化程度高,大大降低了人的成本使设备的可靠性有所提

14、升。这些国外公司占据着全球管道检查市场的绝大多少份儿,并在该领域形成了垄断。并且在此领域的的专利也多为此类公司所申请。我国国内的检测设备仍有一部分主要还是依靠进口。虽然近年来我国也开发出一些国产的产品,但总体来说仍然落后于国外先进产品,尤其是对于大型管道的无损检测还存在一定的缺陷。并且随着国家经济的飞速发展,随着人们生活水平的提高和国家环境保护政策的逐步实施,管道行业的需求也越来越迫切。目前我国在管道检测方面的人机交换仍存在一些问题,而本设计的主要内容便是实现MCU内核与外部设备之间的串口通信的工作,因此本设计具有较强的实用性。1.3 课题意义此部分主要介绍了设计的课题背景及国内外管道检测技术

15、的发展现状。本文针对管道检测机器人的串口通信及相关技术为核心,保证人机交换信息的正确性与稳定性。本课题为创建MCU内核与外部设备之间的串口通信工作。其主要任务是根据要求编写相应的串口通讯协议,其中上位机给处理器的通讯格式为:开始标识(2byte)+命令号(4byte)+数据长度(2byte)+数据(nbyte:与数据长度对应)+校验字节(Ibyte)+结束标识(Ibyte)0若输入的指令的某个区域存在不符合上述通讯格式,串口助手将返回错误区域的错误类型。第2章系统硬件的选型2.1 系统的工作原理本设计的主要内容为实现MCU内核与外部设备之间的串口通信的工作,并编写设计所要求的串口通信协议。该通

16、信协议为非固定帧式,接收到的指令分为五部分,分别为:开始标识、命令号、数据长度、数据、校验字节、结束标识构成。若上位机发送到的数据包为FDAA时,电子包返回给上位机FE55的命令表记。之后分别接收命令号和参数长度,若所接收到的起始标志不为FDAA或者接收到的命令号不为所设置的命令号,则返回所对应的错误类型。如果所接受的类型均是正确的,则开始接收校验字节,其中校验字节为开始标识、命令号、数据长度和所接受到数据的异或值。之后再将接收端接收时将开始标识、命令号、数据长度、所接收数据校验字节进行按字节异或计算,若异或结果为OXOO则数据接收成功。反之若则数据错误,接收失败并返回错误类型。其流程图如图2

17、-1所示。图2-1系统工作流程图2.2 串口通信协议USART通信协议:通用同步异步收发器USART,作为一种采用全双工的通信方式的串行通信设备。与UART相比,USART可实现同步与异步两种通信方式。USART满足外设对工.业标准的异步串行数据格式的要求,且可以根据需求调整不同波特率的传输速度。USART不但能实现单向的同步通讯,还能实现半双工单线通讯,这在实际通信中是非常便利的;此外该系统还具有DMA功能,可高速的进行数据传输。USART各引脚的功能:TX:为输出引脚用于发送数据;RX:为输入引脚用于接收数据;SW-RX:用于单线或智能卡模式的数据接收引脚;SCLK:同步模式时,发送器的时

18、钟输出的引脚;USART的发送器:开启串口发送功能,需要将USART_CR1寄存器的TE置1。其发送数据时,每发送一个字符帧都需要有三个部分:起始位+数据+停止位。其发送过程为TX置1,当TX突然为低电平时表示接收到起始位,起始位为一位周期之后开始接收数据帧。数据帧可以是8位或9位,接收完数据之后,准备接收奇偶校验,若无奇偶校验位,则将电平拉高代表停止位,停止位可以设置为0.5、1、1.5或2个,根据使用需求的不同设置不同长度的停止位,但一般情况下默认为1个。表2T串口数据发送的重要标志位名称功能TE使能发送器TXE当单个发送那个字节时使用,发送寄存器为空TC当发送多个字节时使用,完成发送TX

19、IE使能发送表2-2串口数据接收的重要标志位名称功能RE使能接收RXNE读取数据寄存器非空RXNEIE接收完成后中断使能I2C通讯方式:I2C的总线是一种两线式串行总线,其特点为只需SDA和SCL两条总线便可在理论上连接最多127个设备(实际上最多可以连接110个设备,因为有十几个地址是需要被保留着)。I2C连接方式非常灵活,即可实现多个主机通过总线去连接控制一个从机,也可完成多个从机通过总线与单个主机相连接,任何一个与总线相连接的设备都可以使用唯一的地址来进行寻址,所有与总线相连接的装置都存在着简单的主从关系。I2C在传输速度方面具有标准速度、快速、高速和超高速四种速率,分别对应着100kb

20、ps400kbps、3.4Mbps和5Mbps的传输速度,相比而言SPI的传输速度为1IOoMbPS,传输速度远远大于I2C,因此I2C只能适用于LCD或OLED这样的文字显示器。但相比于SPI在进行1对n个设备传输时,每增加一个设备就需要增加一个端口不同,I2C只需要2个数据总线便可实现1对n的数据传输,并且I2C还可以实现n对n、n对1的数据传输。I2C的硬件层:12C虽然只需要两根总线便可实现数据传输,但这两条数据总线都需要外接上拉电阻,因为I2C的总线均是“opendrain”模式,也就是说这种模式只能将相对应信号线拉低,不能拉高。而关于上拉电阻的选择,其阻值与传输速度成反比,且当传输

21、速度为IoOkPbS时,阻值应小于10K,当传输速度为40OkPbS时,阻值应小于4.7K但在选择阻值时应了解,电阻又与能耗成正比,电阻值越大,电流就越小。硬件层如图2-2所示。图2-2I2C硬件层SPI通信协议:SPl通信协议是一种同步串行通讯协议,其通信方式为全双工,工作方式为主从工作方式,SPl的总线由4条逻辑线构成:主机输入,从机输出的MISO,主机输出,从机输入的MOSL时钟信号SCLK,片选信号SS。相较于UART,SPl属于同步数据总线,需要采用独立数据线及时钟信号,来保证主机与从机同步。SPl主机设备只能有一台但可有多台从机是设备。SPI在多从机的总线方法如图2-3所示,每个从

22、机都有单独的NSS线,在没有通信的情况下,NSS信号线均为高电平状态。当主机与某个从机通信时只需将对应的NSS信号线拉低即可,但不可以同时拉低两个NSS信号线,因为这样可能会出现乱码的现象。主机从机图2-3SPI总线连接方式SPl相较于I2C的优点在于:12C一次至少要传输8位的数据,SPl不仅允许一位一位的传送数据而且可以在传输数据时暂停,因为SPl的SCK是由主机设备产生的,所以没有时钟跳变时从机设备是不会采集或传输数据的,也就是说主机设备可以通过对SCK的控制,从而控制整个通信;若执行一对一的通信,SPl无需进行寻址的操作,并且通信方式为全双工,使得通信简单高效;缺点在于:SPl在多设备

23、通信中,每个设备都需要单独的使能,每个设备均需要独立的I/O口,因此在硬件设备层面来看SPl相较于I2C就会复杂一些;SPI没有指定的流控制,没有应答机制确定是否接收到数据。2. 2.1通信方式本设计的通信方式为异步通信,USART协议。异步通信的特点:1 .传输数据时以字符为单位传输。2 .选用异步通信,通信双方没有统一的时钟,通信时需要将通信双方的波特率设置为同一值,但是波特率可能存在相位不同的情况。3 .在异步通信中数据传输的格式为起始位+数据+校验位+停止位。4 .由于异步通信每次只能发送一个数据,且每次传输的格式均包括起始位、校验位和停止位,因此传输数据的效率不高。对比以上三种通信协

24、议,本次设计所选用的是USART协议,其作为一种十分常用的串口通信协议,特点是连接简单,只需TX、RX和GND便可实现全双工的通信,且具有校验位,其在数据传输方面速率较低,但是在本设计中数据传输量较少,使用USART协议完全够用,且绝大多数的电子设备均支持此类通信协议,因此在硬件选型上较为方便。2.3硬件部分介绍本设计所需的硬件包括STM32F1系列芯片一枚,USB串口部分,串行调试接口SWD及排针I/O口组成。如图2-4所示。图2-4STM32最小系统原理图2.3.1STM32F103ZET6芯片的介绍STM32F103ZET6芯片是Fl系列里性能最为强大的芯片,其工作频率最高可达72MHz

25、,并内嵌由8MHz的RC振荡器,拥有多大8个定时器,其中包括3个16位的定时器,拥有两个可阻止程序跑飞并且可以使芯片复位的看门狗定时器,拥有I2C和SPl接口各2个,即可高速传输数据,也能够以较为简单的方式与外部设备相连接,还具有3个USART接口,可完成同步/异步的数据接收及发送,并且拥有成本低,速度快,功耗低等优点。STM32F1O3ZET6MTqrC)“二二*上r)u;!-:;-米 , 23、 二;:I14l :HtAFT;二+a* 0 船在生害皿落 J=fefe=dfcsz能LststSLatsfcs:-52STM32FlO3ZET6 的原理图2.3.2USB串口如图2-6所示VCC3

26、.3和VCC5分别为3.3V和5V电源的输入输出接口,这两个接口不仅可以为外设提供电源也可以从外设引入电源,此外还可以通过外部给电路供电,并且当调试小电路板时,VCC3.3和VCC5这两组电源也是很方便的。USBjrTL/USARTl1TXDRXD134VCC3.3)OVCC5178VCC5PAIoUSARTIRXPA)USRllIX-JP3GND图2-6USB串口/串口1选择接口2.3.3SWD下载调试接口STM32有两种调试接口,本设计所使用的是串行调试接口SWD,其特点在于使用的调试接口的引脚数少,在连接仿真器时非常方便并且在高速模式下可靠性要优于JTAG(联合测试行动小组)。若程序禁止

27、使用SWD的功能,则SWDK)及SWDCLK也可做普通I/O口使用。若想再次使用SWD下载,只需要拉高BOoTO,使电路上电即可。图2-7SWD串口调试接口。SWDVCC3.3SWDIOSWDCLK图2-7SWD串口调试接口2.4RS232串口通信RS232有如下几个特性:RS232采用负逻辑传输即在TXD和RXD上:-3VT5V表示逻辑1,+3V+15V表示逻辑0;RS232具有较强的抗干扰能力,可实现较长距离的传输,且可实现全双工通讯,最高传输速率为20kbps;RS232串口通信参数包括:波特率(常用的为9800和115200)、数据位(5、7或8位)、停止位(1、1.5或2位)、奇偶校

28、验位;RS232串口通信的传输格式:串行通信时,线路TTL电平为高电平,经过RS232电平为低电平;2.4.1TTL转RS232电平转换在本设计和日常实验中由于MCU内核与其他一些应用模块通常使用的是TTL电平,而PC机以及一些工业设备通常使用的是232电平,而TTL与232之间无法直接进行通讯,因此在使用时两者之间要进行电平转换。TTL的通讯标准为2.4V5V代表逻辑1,0-0.5V代表逻辑0;RS232的通讯标准为T5V-3V代表逻辑1,+3V15V代表逻辑0,其两者表示同一信号时的对比图如图2-8所示。图2-8TTL转232信号对比图使用分立元件实现TTL转232的工作原理:由于二极管与

29、电容的影响使得二极管Dl与电容C7交点处的电压维持在-3VT5V之间,可表示为RS232的逻辑Io(1)当TXD为TTL的逻辑1时,二极管Q3截止,PCRXD与PCTXD上的电压相等,都为-3V-15V,表示RS232的逻辑1;当TXD为TTL的逻辑0时,,二极管Q3导通,PCRXD处的电压在+3V+15V之间,约为+5V,即为RS232的逻辑0;换而言之TTL的逻辑1经过这个分立元件所构成的电平转换电路后,RS232识别的同样为逻辑1,这就实现了电平转换的功能。电路图如图2-9所示。图2-9分立元件构成的TTL转232电路RS232异步通信的通信方式,使用时常采用的串口引脚及功能如表2-3所

30、示。表2-3RS232常使用的引脚针脚编号名称功能2RXD(ReceivedData)串口数据输入3TXD(TrasmittedData)串口数据输出5GND(SignalGrund)接地信号线2. 4.2MAX232芯片使用MAX232芯片可完成TTL转RS232的工作,MAX232内部共有四条转换线路(RS232转TTL与TTL转RS232的各两条)其中的类型所对应的引脚如表2-4所示。在此次串口通信的过程中,本设计只使用其中的两条线路,一条线路负责TTL转RS232,另外一条线路负责RS232转TTL0表2-4MAX232转换类型引脚类型转换13、12RS232转TTLRiin-Riou

31、t8、9RS232转TTLR2IN-*RIOUT11、14TTL转RS232TllNfTIOUT7、10TTL转RS232T2IN-*T2OUT此设计本设计使用的MAX232的引脚配置如表2-5所示,其只需一个5V电源供电,供电电流为5mA,内部集成了两个RS-232驱动器,具有功耗低的优点。表2-5所需引脚及功能引脚类型功能7T2OUT将转换好的TTL电平发送出来8R2IN输入232电平9R2OUT输出转换好的232电平出来10T21N输入TTL电平15GND供电16VCC供电2.4 .3USB转串口芯片CH340CH340作为一种USB转换的芯片,其功能便是实现USB转串口,选用此芯片的另

32、一个原因便是当今所只用的大多数PC机只有USB口没有串口,且此芯片多用于异步串口。使用此芯片还有一个原因在于CH430是一款国产芯片,相较于其他进口芯片,不仅存在着价格优势,并且性能足够强大,可以满足本设计。图2T0为本次设计所使用的芯片CH340To图2T0CH340T芯片由于当今笔记本电脑很少具有232接口,且使用232接口有些过于笨重,这将会增加PCB电路的面积,从而增加成本,并且在日常中的使用可证明USB的效果可能更好且错误率更低,因此本设计选用的是USB串口加CH340芯片。其外设与PC机之间的数据传输的过程如下图2T1所示。图2T1TTL转232转换图2.5 DMA传输本设计所选用

33、的接收方式为DMA,可以大大减轻CPU的工作量,因为使用此方式进行数据传输无需经过CPU,因此无需中断现行的程序,具有传输速度快,系统效率高等优点。2. 5.1DMA的基本介绍DirectMemoryAccess简称DMA,也叫直接存储器访问,是提高单片机CPU运行效率的一种常用方法。串口USART在不使用DMA的情况下:其工作模式如图2-12所示,串口每当发送一个字节数据时,CPU都需要到RAM中去取出这个数据,然后再将这个数据发送到UASRT的数据寄存器DR中,并且当每接收一个数据时,都会产生一次中断,当CPU在处理中断程序时,才会把数据寄存器DR中的数据取出,发送到RAM中。这种方法不仅

34、程序执行效率低下,而且因CPU需要处理大量的数据通信,就严重影响CPU的运算能力。在DMA工作模式下:其工作模式如图2T3所示,DMA就替代CPU完成相应的工作,CPU只需把要发送的数据放到RAM中去之后通知DMA,让DMA完成相应的任务,或者DMA接收到数据后,产生一个中断通知CPU直接去RAM中去取数据即可。相比于不使用DMA的情况,CPU无需在USART中去读取数据,只需读取RAM中的数据即可,因此CPU读取效率将会大大提高,减少CPU的运算负担。图2-12无DMA的数据传输图2-13 DMA的数据传输3. 5.2DMA的主要特点1 .DMA可实现直接的数据传输,因去除了传统传输过程中C

35、PU所参与的环节;2 .其作用是解决CPU在执行大量传输数据时所造成的过度消耗资源的问题,使用DMA便可以使CPU专注于执行计算、控制等功能;4. DMA会降低CPU的运行速度,其原因在于当没启动DMA时,系统总线全部分配给CPU,因此CPU可全速运算;当启动DMA时,系统总线便会为其分配一部分时间,这就会占用CPU的系统总线,使得运算速度降低;2. 5.3DMA工作框图工作步骤:1. 外设对DMA控制器发送请求;2. DMA控制器接收请求并出发DMA工作;3. DMA控制器通过AHB从设备获得ADC所采集的数据,并将数据存储到DMA的各个通道中;4. DMA总线使用AHB从设备将ADC所采集

36、的数据通过DMA通道传输到SRAM中。传输过程如图2T4所示。整个传输数据的过程,无需CPU与内核的参与,因此降低了CPU的运行负担,加快了传输速率。框图中仲裁器的作用是确定传输的优先级(优先级可分为:最高优先级、高优先级、中优先级和低优先级这4个等级),而仲裁器则是通过优先级来按顺序启动外设访问。图21DMA框图Flash接D控制4M位和时钟栉制(RCC)DMA清求AUD从设备图2-14DMA工作框图5. 6小结本章主要是对系统的硬件部分进行了介绍,包括系统的工作原理,USB串口电路,本设计所需要的开发板的MCU内核及外围电路,RS232串口通信。了解到了本设计所需的硬件设备,同时此部分对串

37、口通信协议进行了简单阐述与分析,并根据设计要求选择合适的外围电路及通讯协议实现该功能,为下一步编写串口通讯协议提供基础。第3章系统软件部分概况3. 1STM32CubeMX软件简介STM32CubeMX(如图3-1所示)是一款对于STM32芯片的图像化的配置工具,允许用户使用图像化的方式生成C的初试化代码。其目的就是提高用户的工作效率,减少开发时间,用户可直接选择所需要的STM32的型号,无需查询相关芯片的数据手册,便可较为只管的了解各引脚与外设的功能。目前STM32CubeMX内几乎可以找到任何一款STM32系列芯片。但STM32CubeMX依然存在着一些缺点与不足如:目前网络上的开发资源和

38、视频教程均是使用的是STM32标准库实现的,HAL库可参考的相关资源较少,虽然相信未来会逐步的增加,但当前对于初学者来说学习HAL库相比于标准库来说还是有一定的难度。而且函数可能存在封装过度的现象,并且配置函数较多且具有多个功能,存在执行时间较长等缺点。个人感觉对于STM32单片机来说图像化的编辑以及自动生成初始化代码将会成为未来的发展趋势。QtTWSINWWMtrt-OMAVWUlVtt-STMUVIONYU一0图3-1STM32CubeMX3. 2系统软件设计4. 2.1STM32CubeMX初始化配置1 .将晶振设置为外部高速晶振,并进行时钟配置;2 .再将Debug设置为SerialW

39、ire;3 .本设计选择通用同步异步收发器USARTl,配置其参数:波特率设置为115200Bits,字长设置为8Bit,无奇偶校验位,停止字节设置为1字节;4 .设置NVIC:使能NVICinteruptTable的USARTlglobalinterupt;5 .设置DMA:添加USART1_RX和USART1_TX将数据宽度均设置为Byte,通道分别设置为通道5和通道4;3.2.2KeiI编写串口通信协议一、配置各中间变量:程序运行中为方便数据的接收及发送,将所接收数据的不同部分,分别对应的中间变量,并表明各状态不同状态下的含义如表3T所示。表37各参数的意义中间变量含义状态command

40、所接收到的命令号rec_chk校验字节(发送端)reclength所接收的数据长度recbegin所接收的起始标号irec_figure所接收到的数据rec_check校验字节commu_err返回的错误类型Ol代表命令号错误;02代表帧格式错误;03表示校验字节错误;P2AFlag上位机发送的数据标志位0代表初值;1代表所发送的帧格式、命令号、校验字节均正确N接收不同状态的数据二、通讯协议部分程序如下:设计思路:由于串口的收发以字节为单位而进行的,因此此段程序的设计思路为当每接收到一帧的数据时,会根据N(数据的下标)用来判断接收的数据是否正确,若正确则继续接收数据,下标N加一运算,反之若接收

41、数据错误时,对变量进行初始化并返回错误编号,若接收的数据全部正确,则可进入下一状态。串口中断服务函数USARTlIRQHandlerO:1 .接收开始标识位此部分程序的运行流程为:在准备好接收数据标志位的前提下,先对所接收的校验字节及命令号进行初始化设置,在N等于O时若接收到的开始标识不为FD和AA,则向上位机返回02代表帧格式错误。若接收到的开始标识为FDAA,则返回给上位机FE55标识开始准备接收下部分的数据。其程序流程图如3-2所示。重要的函数:if(USART-GetITStatus(USART1,USART_IT_RXNE)!=RESET)此行程序的作用为检测USART中断是否发生,

42、如果接收到中断则进入到接收数据的环节。开始N等于0等待X非FFAA接收FFAA返回FF55接收下个数据图3-2接收开始标识位流程图2 .检验命令号及所接收到的数据长度检验命令号并接收数据长度(2Byte):此段程序的运行流程为:首先检验接收到的命令号是否正确,若接收到的命令号不为OX(H-Ox6,则向上位机返回0x01代表命令号错误,若所接收到的命令号为OXOl0x6则接收到的命令号正确,N加一并准备接收数据长度。将接收到的数据长度发送至变量rec_length,若接收到的数据长度大于600,向上位机返回0x02代表帧格式错误。程序流程图如图3-3所示。图3-3接收命令表示及数据长度流程图3

43、.接收数据并计算校验字节此段程序的运行流程为:首先根据根据接收到的命令号的不同,设置不同的N值筛选条件,并接收上位机所发送的数据;再通过对所接收到的起始标识、命令号、数据长度和数据的按位异或,进行校验字节的计算,最后通过检验起始标识、命令号、数据长度、数据、校验字节的进行按位异或,并判断是否为OXO0,若不为0x00则向上位机返回对应的错误类型,若异或值为OXOO则准备接收下一部分数据,其流程图如3-4所示。图3-4检验异或校验位流程图4 .接收结束标识位:此段程序为若接收到的结束标识为AB时,则上位机发送数据符合协议,接收完毕进入下一个状态。若接收到的标志位不为AB时,则需要向上位机返回对应

44、的错误类型。5 .接收结束标识位:图3-5初始化参数此段程序为:N加一,准备接收下一部分数据,若接收到的数据存在命令号错误、帧格式错误、校验位错误,则对USARTl的传输数据标志位进行清零。再将错误类型通过USARTI返回给上位机。对接收上位机数据数组以及所有中间变量初始化,流程图如3-5所示。3. 3小结本章主要介绍了串口通讯协议各个部分程序代码的设计及其工作流程,用Keil对STM32单片机进行编译,用STM32CubeMX对开发板进行初始化配置,完成对开始标识、命令号、数据长度、数据、校验字节及结束标识的检验,若存在错误并返回其错误类型,完成串口通信的功能。下一步就是将程序下载到硬件中调

45、试,在测试过程中需检查是否有错误出现,如果程序和硬件均调试正确,当上位机发送的指令有误时,则会返回对应的错误代码,若上位机发送的指令正确时,则会返回给上位机所发送的指令的数据部分。如果在调试过程中存在错误,应重新改写程序,重复调试的步骤直至达到要求为止,通过该方法可以提高系统运行效率,保证设备正常稳定地运行。最后根据实验结果和分析总结出一些结论和建议,为今后进一步研究提供依据。本设计基于STM32最小系统板的串口通信,具有体积小、功耗低、可靠性高、抗干扰能力强等优点。第4章调试结果3.1 软件调试由于编写的程序在于硬件相结合使用时可能会产生错误,若要检测出此类问题,则需对软件部分进行调试工作,

46、检测出在程序编写时所存在的错误。对此本设计需对每个模块进行测试,检测其功能能否实现,然后对每个模块进行测试。调试步骤如下:1 .对检验开始标识位部分进行测试,当输入的开始标识不为FDAA时,能否跳出程序并返回错误类型。若接收到的开始标识为FDAA时,能否向上位机返回FE55;2 .对检验命令标识部分进行测试,当接收到的命令号为0x01-0x10中的任何一个命令号时,接收该命令号,若所接收到的命令号不为OXOl0xl0时能否返回错误类型;3 .检测接收数据长度部分,能否将接收到数据长度,并且当接收到的数据长度大于600时,能否报错返回错误类型;4 .检测接收数据部分,能否接收到与数据长度相对应的

47、数据;5 .对校验字节部分进行调试,能否按位对起始标识、命令号、数据长度和数据进行异或,并判断起始标识、命令号、数据长度、数据进行和校验字节异或是否为0x00,若不为0x00能否返回对应的错误类型;6 .检测接收结束标识位部分,接收到的结束标识不为AB能否返回对应的错误类型,若接收到的结束标识为AB能否进入下一状态;7 .检验接收错误类型,若接收到的数据存在以上任何一种错误能否向上位机返回错误类型,并初始化相关参数。4. 2结果及分析当上位机发送的指令有误时,则会返回给上位机对应的错误编码,若上位机所发送的指令正确时,则会返回给上位机发送的指令的数据部分(只包括帧格式里的数据位,不包括起始标识、校验位、结束标识等)。发送上位机指令使用的是串口助手,且串口助手和上位机所

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

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号