1、毕业设计题目基于单片机的MODBUS通讯器设计学院电气信息学院专业电子信息工程班级0902学号38学生姓名导师姓名完成日期2013年05月31日诚信声明本人声明1、本人所呈交的毕业设计是在老师指导下进行的研究工作及取得的研究成果;2、据查证,除了文中特别加以标注和致谢的地方外,毕业设计(论文)中不包含其他人已经公开发表过的研究成果,也不包含为获得其他教育机构的学位而使用过的材料;3、我承诺,本人提交的毕业设计中的所有内容均真实、可信。作者签名日期年月日毕业设计(论文)任务书题目基于单片机的MODBUS通讯器设计姓名系电气信息学院专业电子信息工程班级0902学号200901030238指导老师职
2、称讲师教研室主任刘望军一、基本任务及要求1、查找资料,熟悉单片机的基本结构及功能,熟悉利用52单片机进行通讯器的硬件设计。2、掌握C51语言,并完成MODBUS通讯程序的编写3、利用ALTIUMDESIGNER软件画原理图及PCB。4、购买元器件并焊接,制作通讯器。5、通信器软硬件调试。二、进度安排及完成时间(1)第一周至第三周查阅资料、撰写文献综述和开题报告;(2)第四周至第五周利用ALTIUMDESIGNER软件画原理图及PCB;(3)第六周至第十一周;编写代码并完成调试工作;(4)第十二周至第十三周撰写设计说明书;(5)第十四周毕业设计答辩;目录摘要IABSTRACTII第1章绪论111
3、概述112目的与意义213发展现状和前景展望314研究的主要内容和步骤4141主要内容4142设计的步骤4第2章系统设计方案621设计方案选择622芯片选择623软件方案设计7第3章硬件电路设计931主机CPU模块932电源模块1033液晶显示模块1034存储模块1235程序调试下载模块1236串口通讯模块1337从机主控模块1438LED灯显示模块1539温度检测模块15第4章软件设计1741串口通信模块1742数据帧处理模块1743参数保存模块1944液晶显示模块20第5章系统调试2351硬件调试23511主机电路板调试23512从机电路板调试2452软件件调试24521调试平台24522
4、调试问题2553调试结果26参考文献28致谢29附录1主机硬件原理图30附录2从机硬件原理图31附录3主机PCB实物图32附录4从机PCB实物图33附录5主机通讯程序代码34附录6从机通讯程序代码38I基于单片机的MODBUS通讯器的设计摘要随着现场总线在工业应用中的越来越广泛,越来越普及,MODBUS作为其中的一种简单协议也受到不少的欢迎。本论文根据MODBUS协议中RTU模式实现读寄存器、写单个寄存器、写多个寄存器等多个功能。本系统从机以STC12C5A60S2为基本平台,利用RS232串口实现与上位机通讯,用单片机的内部RAM寄存器模拟协议中的寄存器,根据寄存器的值调节单片机PWM输出,
5、改变LED灯的亮度,单片机读取实时温度。本系统上位机以STM32F103RBT6为平台,通过43寸TFT触摸屏实现查询从机、设置从机参数等功能,实时显示从机的通讯状态、寄存器的值、温度测量值。另外本系统还具有掉电保存、温度报警功能。关键词MODBUS、LED、寄存器、RS232、STC12C5A60S2、温度报警、STM32F103IITHEDESIGNOFMODBUSCOMMUNICATORBASEDONMCUABSTRACTWITHTHEFIELDBUSUSINGINTHEINDUSTRIALAPPLICATIONWIDELYANDPOPULARLY,MODBUSISMOREWELCOME
6、DASONEOFITSSIMPLEAGREEMENTACCORDINGTOTHERTUSCHEMAOFMODBUSINMODBUSAGREEMENT,THEPAPERMAINLYACHIEVESTHEFUNCTIONOFREADINGREGISTER,WRITINGSINGLEREGISTERANDMULTIPLEREGISTERSETCTHESLAVEOFSYSTEMUSESTHESTC12C5A60S2ASTHEBASICPLATFORMANDRS232TOREALIZETHECOMMUNICATIONWITHTHEHOSTCOMPUTERTHESYSTEMWILLUSETHEREGIST
7、EROFINTERNALRAMINMCUTOSIMULATETHEREGISTERINAGREEMENT,ANDACCORDINGTOTHEVALUEOFREGISTERITCANADJUSTTHEMCUOUTPUTOFPWM,CHANGETHEBRIGHTNESSOFLED,ANDACQUIRETHEREALTIMETEMPERATURETHEHOSTCOMPUTEROFSYSTEMUSESSTM32F103RBT6ASPLATFORM,BYTHE43INCHESTOUCHINGSCREEN,ITWILLREALIZETHEFUNCTIONOFQUERYINGSLAVE,SETTINGPAR
8、AMETEROFTHESLAVE,DISPLAYINGTHECOMMUNICATIONSTATUSOFSLAVEANDTHEVALUEOFREGISTERANDTEMPERATUREMEASUREDBESIDES,THESYSTEMALSOHASPRESERVATIONOFPOWERDOWNANDTEMPERATUREALARMFUNCTIONSKEYWORDSMODBUS、LED、REGISTER、RS232、STC12C5A60S2、TEMPERATUREALARM、STM32F103基于单片机的MODBUS通讯器设计1第1章绪论11概述MODBUS是由MODICON在1979年发明的,是
9、全球第一个真正用于工业现场的总线协议。为更好地普及和推动MODBUS在基于以太网上的分布式应用,目前施耐德公司已将MODBUS协议的所有权移交给IDA组织,并成立了MODBUSIDA组织,为MODBUS今后的发展奠定了基础。MODBUS协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络和其它设备之间通讯。它已经成为一种通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通讯的。它描述了控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它
10、制定了消息域格局和内容的公共格式。当在MODBUS网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用MODBUS协议发出。MODBUS具有以下几个特点1、标准、开放,用户可以免费、放心地使用MODBUS协议,不需要交纳许可证费,也不会侵犯知识产权。目前,支持MODBUS的厂家超过400家,支持MODBUS的产品超过600种。2、MODBUS可以支持多种电气接口,如RS232、RS485等,还可以在各种介质上传送,如双绞线、光纤、无线等。3、MODBUS的帧格式简单、紧凑、通俗易懂。用户使用容易,厂商开发简
11、单。在大多数工厂里,现场仪表采用单独的控制室直连对绞线电缆连接到控制系统。当仪表设备被连接到一种分散式I/O系统的时候,可以增加更多的现场设备,但是仅仅需要一根对绞线电缆就可以把所有数据传送到MODBUS主站。以MODBUS网络的方式组网连接的时候,把现场设备连接到一个过程控制系统、PLC或是工业计算机系统,整个工厂的连接都能够从对绞线电缆控制室直连的方式转变成为MODBUS连接方式。到目前为止,我们仅仅涉及到了简单的MODBUS数据采集系统。还有一种方案也是可能的,那就是把控制设备安装在现场,然后通过MODBUS使其与中央控制系统进基于单片机的MODBUS通讯器设计2行通讯。它也可以被编程用
12、来执行控制功能,例如PID控制、ON/OFF控制、现场报警、诊断以及报警监视等。另一种智能化并且具有控制能力的MODBUS设备是来自于MOOREINDUSTRIES公司的MDS方程站。这是一种多功能控制器,它能够执行很多种类型的控制功能和运算。有了MDS方程站,在实现简单控制任务、多变量控制任务(例如监视和控制一个蒸煮器里的纸浆液位或者使用来自多个流量、温度和压力变送器的输入信号实现质量流量计算)时就不再需要PLC或者大型控制器了。最多可以有127个MDS模件被安装在一个MODBUS网络上面来实现对工厂的控制或是采集整个工厂的信号。PID(比例、积分和微分)控制器最初都是单机独立运行的无通讯控
13、制器。由于PLC和DCS都已经智能化,因此现在PID控制器也智能化了。今天,许多终端用户依然青睐那些直接读出和编程简单的单回路控制器。诸如MODBUS等数字化通讯协议能够给这些一直单机运行的仪表注入一些新的活力。通过对这些控制器进行多分支网络连接,可以创造一个自己的小型分散控制系统。现代的控制领域持续不断的产生和应用诸如现场总线和网状网络等先进概念,MODBUS的简单性以及它的便于在许多通讯媒介上实施应用的特点一直使它受到最广泛的支持,并且成为全球应用最广泛的工业协议。当使用现有老式控制系统的用户发现自己需要扩充现场仪表或者增加远程控制器的时候,他们都会采用MODBUS作为一个能够解决复杂问题
14、的简单解决方案。用户试图把一个外来设备连接到控制系统里面,使用这个设备的MODBUS接口被证明是最为容易的办法。虽然MODBUS已经是最为古老的通讯方法之一,由于非常多的原因它也是最普及的通讯方法。MODBUS便于使用、非常可靠、价格低廉并且可以连接到控制工业领域几乎所有的传感器和控制设备。MODBUS广泛的应用于程序自动化、工业自动化、智能建筑、输配电通讯协议、智能电表、车用通讯。12目的与意义在现代化工业控制中,由于被控对象、测控装置等物理设备的地域分散性,以及控制与监控等任务对实时性的要求,不同设备之间现场交互性信息的传递越来越多。但传统的工业控制系统软件存在着一些问题。不具备开放性,各
15、个部分的联系过于紧密,使系统过于复杂。这样使系统的更新、扩展和升级变得非常困难,对系统任何一部分的修改都有可能对其它部分造成影响,从而导致大量且烦琐的软件和硬件的修改。传统的工基于单片机的MODBUS通讯器设计3业控制软件开发中出现的另一个主要问题是软件的重复开发,软件不能够复用,资源不能共享,造成大量的人力与物力资源的浪费。虽然使用高级语言函数库让我们可以利用面向对象的继承等方法大量重用源代码,但这些复用只是对源代码级的复用而不是对可执行文件级的复用。由于传统工业控制系统的带来的不便,造成形成了大量的信息孤岛,但是,对于工业控制而言,各站点之间不是孤立的,它们必须互相配合、协调才能保证产品质
16、量和实现连续生产,这就需要各站点能互通讯息。另外,上级管理网也需要与子站交互数据,以实现全局的监控和优化。然而,子站是采用不同开发平台、不同通讯协议组成的结构系统,可能由不同的厂家和个体开发。要为每种协议写一个转换接口或驱动是比较繁琐的,特别是在站点和协议较多的时候。因此,怎样有效集成数据,避免信息孤岛的出现,是工业控制领域中常遇到难点问题之一。比较好的方法是各站点都采用标准协议进行数据通讯,而不必为每一种协议开发一个通讯接口。目前这方面的协议比较多,MODBUS就是其中的一种。MODBUS是一种全开放,免费提供,非常容易理解和实施的协议,从70年代诞生以来,在制造业、电力、水电、冶金、矿山、
17、交通、基础设施的工业领域中的数据采集和过程控制得到了广泛应用,形成了一种事实上的工业标准。同时,随着单片机技术的迅速发展,单片机技术已逐步进入工业自动化领域,单片机以体积小、质量轻、价格便宜、应用方便等优势。它允许MODBUS协议与单片机232接口结合,在单片机串口中嵌入MODBUS信息帧,成为MODBUS/RTU或MODBUS/ASCII,在工业自动化领域中,具有很高的性能价格比,是一种真正开放的理想解决方案。13发展现状和前景展望目前在全球范围内已经安装了MODBUS串行设备,基于MODBUS和单片机技术的透明就绪的广泛应用可以被归类到三大市场能源与基础设施,工业,以及建筑行业。在能源与基
18、础设施市场,机场、隧道、数字通讯、电信、水处理、油气、能源等行业大大得益于透明就绪的远程控制能力。在工业市场,食品与饮料、微电子、制药、汽车等行业则高度的受益于透明就绪中从IT系统贯通到车间层单片机的统一全局网络架构。基于单片机的MODBUS通讯器设计4在建筑市场,医疗机构、公用建筑、民用住宅、船舶等行业在透明就绪中使用他们原有的单片机232网络,从而大大的降低了实施费用。14研究的主要内容和步骤141主要内容1、查找资料,熟悉单片机的基本结构及功能,熟悉利用STC12C5A60S2、STM32F103VET6单片机进行通讯器的硬件设计。2、掌握C51语言,并完成MODBUS通讯程序的编写。3
19、、构建各个模块功能,利用ALTIUMDESIGNER软件画原理图及PCB。4、购买元器件并焊接,制作通讯器。5、搭建测试平台,通讯器软硬件调试。142设计的步骤本次设计的课题是基于单片机的MODBUS通讯器的设计,主要的研究方法步骤如下1、对整个MODBUS通讯协议的构成、要求、应用等进行大概的了解,明确课题的定位和所要解决的问题。2、对单片机控制的理论以及涉及到的相关知识进行系统的学习,例如如何建立单片机232通讯,如何利用电脑对单片机编程,常用的编译软件,以及通讯所要达到的效果等等。3、选择单片机型号,经过对常用编译软件的相关了解,对单片机性能及控制方法做简单测试。经过之前的理论学习和了解
20、,以及参考大量文献总结前人经验,初步选型方案选定如下选用STM32F103VET6做主控单片机,43寸TFT彩屏做界面显示,从机采用STC12C5A60S2做控制,主控单片机发送MODBUS命令给三个从机,从机根据命令执行相应操作,同时从机将采集到的数据保存到单片机RAM单元中供主机查询。4、根据选定的单片机型号画出对应的最小系统以及各个功能模块电路图,画出PCB板,搭建硬件调试环境。5、软件调试,首先利用电脑做MODBUS主机,分别调试主机控制板和从机控制板,确保软硬件完美结合。基于单片机的MODBUS通讯器设计56、综合调试,主机控制板与从机控制板进行MODBUS通讯,分别控制各个功能块。
21、对设计的结果进行分析和总结。基于单片机的MODBUS通讯器设计6第2章系统设计方案21设计方案选择方案一采用电脑当主机,从机利用单片机与电脑通过RS232通讯,电脑发送MODBUS命令查询从机数据,从机接收命令返回相应数据,电脑工控软件刷新从机数据,从而实现MODBUS通讯器功能。方案二单片机做主机,利用显示屏作为数据显示界面,主机单片机发送MODBUS命令给从机,从机返回数据给主机单片机,主机控制液晶屏刷新从机数据,实现MODBUS通讯器功能。方案一连接简单,操作方便,只需开发从机模块与电脑通讯,只需编写从机MODBUS通讯协议代码。方案二利用液晶屏代替电脑显示器界面,单片机做主机,同时开发
22、主机与从机,需要编写主机和从机MODBUS通讯协议,难度偏大。权衡考虑后,方案二实用性更强,所以本系统采用方案二设计。22芯片选择由于主机液晶显示采用43寸TFT触摸屏,对主机CPU控制器要求较高,故主机主控芯片采用STM32系列的STM32F103RBT6芯片。从机主控芯片则有两种选择1、STM系列的STM8S105K4,此芯片编程简单,单片机价格便宜,与传统51单片机编程方法兼容,内部资源丰富,下载程序简单,可在线调试,但需特定下载器,而且下载器价格昂贵。2、STC系列的STC12C5A60S2,此芯片编程简单,价格便宜,与传统51单片机编程方法兼容,内部资源丰富,下载程序只需RS232接
23、口即可将程序下载到单片机,经济实惠。根据比较,本系统从机主控芯片采用STC12C5A60S2,利用串口通讯芯片MAX3232与上位机连接,系统硬件结构框图如图21所示。基于单片机的MODBUS通讯器设计7主机从机1从机2从机3RXDGNDTXDRXDRXDRXDTXDTXDTXDGNDGNDGND图21系统硬件结构框图23软件方案设计本系统主机基于STM32单片机平台,从机基于STC单片机平台,利用其中的RS232,主机发送MODBUS命令查询从机数据,主机根据触摸屏定义的功能,下置数据到从机寄存器,改变从机寄存器模拟量的值,然后根据MODBUS总线协议编写相应的程序完成其功能,另外再利用DS
24、18B20测量温度,通过MODBUS实现温度报警等功能,然后利用43寸TFT触摸屏实时显示通讯状态、LED灯的状态、实时温度值。图22为软件的总体流程图。基于单片机的MODBUS通讯器设计8开始系统初始化主机发送查询命令从机接收命令匹配地址地址匹配的从机返回数据液晶屏刷新对应从机数据图22软件总体流程图。基于单片机的MODBUS通讯器设计9第3章硬件电路设计31主机CPU模块主机CPU模块采用STM32系列的CORTEXM3处理器STM32F103VET6,STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCORTEXM3内核。按性能分成两个不同的系列STM32F10
25、3增强型系列和STM32F101基本型系列。增强型系列时钟频率达到72MHZ,是同类产品中性能最高的产品;基本型时钟频率为36MHZ,以16位产品的价格得到比16位产品大幅提升的性能,是16位产品用户的最佳选择。两个系列都内置32K到128K的闪存,不同的是SRAM的最大容量和外设接口的组合。时钟频率72MHZ时,从闪存执行代码,STM32功耗36MA,是32位市场上功耗最低的产品,相当于05MA/MHZ。STM32F103VET6外围电路设计简单,芯片最小系统电路如图31所示。PE21PE32PE43PE54PE65VBAT6PC13TAMPERRTC7PC14OSC32_IN8PC15OS
26、C_OUT9VSS_510VDD_511OSC_IN12OS_OUT13NRST14PC015PC116PC217PC318VSSA19VREF20VREF21VDDA22PA0WKUP23PA124PA225PA326VSS_427VDD_428PA429PA530PA631PA732PC433PC534PB035PB136PB237PE738PE839PE940PE1041PE1142PE1243PE1344PE1445PE1546PB1047PB1148VSS_149VDD_150PB1251PB1352PB1453PB1554PD855PD956PD1057PD1158PD1259PD
27、1360PD1461PD1562PC663PC764PC865PC966PA867PA968PA1069PA1170PA1271PA1372NC73VSS_274VDD_275PA1476PA1577PC1078PC1179PC1280PD081PD182PD283PD384PD485PD586PD687PD788PB389PB490PB591PB692PB793BOOT094PB895PB996PE097PE198VSS_399VDD_3100U3STM32F103VE12Y13276812Y28M10PFC1810PFC1920PFC2020PFC211MR3GNDGNDGNDGNDOSC
28、32_INOSC32_OUTOSC_INOSC_OUTOSC32_INOSC32_OUTOSC_INOSC_OUTVSSAVREFVREFVDDA3V33V33V33V33V3GNDGNDGNDGNDGND10KR4GND10KR5GND3V310KR6100NFC223V3GNDRESETRESETJTCKJTMSJTDIJTDOJNTRSTPD14PD15PD0PD1PE7PE8PE9PE10PE11PE12PE13PE14PE15PD8PD9PD10PD4PD5PB12PB13PB14PB15PC7PC8PC9PC10PC11PC12PA0PA1PA2PA3PA4PA5PA6PA7PA8
29、PA9PA10PA11PA15PD2PD3PD6PD7PD11PD12PD13PB0PB1PB2PB5PB6PB7PB8PB9PB10PB11PC0PC1PC2PC3PC4PC5PC6PE0PE1PE2PE3PE4PE5PE6PC13D0D1D2D3D4D5D6D7D8D9D10D11D12D13D14D15CSSPI2_MISOSPI2_MOSISPI2_SCKSPI2_NSSWRRSRDBLACKLIGHTINTBUSYF_CSSD_CSSPI1_MISOSPI1_MOSISPI1_SCKSPI1_NSSU2TXU2RXU1RXU1TXLED1LED2LED3LED4LED5LED_LEF
30、TLED_RIGHTWAKEUPKEY1KEY2KEY3BUZZER最小系统如图31STM32F103VET6最小系统电路基于单片机的MODBUS通讯器设计1032电源模块主机系统供电采用LM7805稳压出5V,供给LT1117输入,使得输出为33V主芯片所需的电源,电源模块原理图如图32所示。LT1117三端可调或固定电压33V输出电流为1A,线路调整率为02,负载调整率为04,封装类型为SOT223。三端稳压集成电路LM7805。常见的三端稳压集成电路有正电压输出的LM78系列和负电压输出的LM79系列。三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。OU
31、T3IN1GND2U1LM7805IN3GND1OUT2U2LT1117GNDGND10UFC210UFC3912VGNDGNDGNDGND10UFC1GND3V3VCC3V3GND10UFC1310NFC1410NFC15100NFC1610UFC1710UHL110UHL210RR110RR2GND3V3VDDAVREFVREFVSSAD1POWER470RR143V3GNDGND912V电源123P4HEADER3100NFC4100NFC5100NFC6100NFC7100NFC8100NFC9100NFC10100NFC11100NFC12图32电源模块电路图33液晶显示模块主机系统
32、采用43寸TFT液晶显示屏做界面显示,43寸彩色TFTLCD显示模块的内置LCD控制器以及显存,对43寸模块进行操作时,实际上是对LCD控制器的控制寄存器、显示数据存储器进行操作。液晶显示模块及CPU引脚接口电路如图35所示。43寸模块内部有双图层显示功能,双图层显示的模块具有两个显示图层一个背基于单片机的MODBUS通讯器设计11景层,一个前景层。两个图层都具备16位真彩的显示能力。本系统直接采用STM32单片机驱动液晶屏,STM32单片机内部带有静态存储器控制器(FSMC),FSMC模块能够与同步或异步存储器和16位PC存储器卡接口,它的主要作用是1、将AHB总线传输信号转换到适当的外部设
33、备协议。2、满足访问外部设备的时序要求所有的外部存储器共享控制器输出的地址、数据和控制信号,每个外部设备可以通过一个唯一的片选信号加以区分。界面显示如图33、34所示。图33开机界面图34主界面1234567891011121314151617181920212223242526272829303132P1PD14PD15PD0PD1PE7PE8PE9PE10PE11PE12PE13PE14PE15PD8PD9PD103V3GNDPD4PD5PB14PB15PB13PB12RESETPD7PD11PD13PC9PC10PC11PC12D0D1D2D3D4D5D6D7D8D9D10D11D12D
34、13D14D15CSRSRDBLACKLIGHTINTBUSYF_CSSD_CSWRSPI2_MISOSPI2_MOSISPI2_SCKSPI2_NSS123456789101112131415161718192021222324P3HEADER12X2HPA15PD2PD3PD6PB5PB6PB7PB8PB9PE0PE1PC2PC3PB0PB1PB2PB10PB11PD11PD12PD13PA8PA11TFT接口GND图35TFT液晶及CPU引脚接口基于单片机的MODBUS通讯器设计1234存储模块由于主机采用43寸TFT触摸屏作为界面显示,像素点为480272,需要大量图片数据信息,而主芯
35、片内部FLASH只有512KB,最多只能存放两张图片,所以本系统采用了外扩存储器的方法存储图片数据。图片数据存入存储芯片的固定地址,多张图片分地址放置,CPU只需按地读取存储器内部数据送入TFT显示器,即可完成所有图片显示,节约了CPU内部空间。本系统存储模块采用AT45DB161D存储芯片,存储容量为2M,足够存储大量图片数据信息。模块电路图如图36所示,AT45DB161D是一款25V或27V,串行接口的FLASH存储器,是各种数字语音,图像,程序代码和数据存储应用的理想选择。AT45DB161D支持RAPIDS串行接口,适用于要求高速操作的应用。RAPIDS串行接口兼容SPI,最高频率可
36、达66MHZ。AT45DB161D的存储容量为17,301,504位,组织形式为4,096页,每页512或528页。SI1SCK2RESET3CS4WP5VCC6GND7SO8U4AT45DB161D3V33V3GNDPA4PA5PA6PA7SPI1_NSSSPI1_SCKSPI1_MOSISPI1_MISO存储图36存储模块35程序调试下载模块STM32内部集成JTAG调试模块,JTAGJOINTTESTACTIONGROUP;联合测试行动小组是一种国际标准测试协议(IEEE11491兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。标准的JTAG
37、接口是4线TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。JTAG编程方式是在线编程,传统生产流程中先对芯片进行预编程再装到板上因此而改变,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。JTAG接口可对PSD芯片内部的所有部件进行编程。具有JTAG口的芯片都有如下JTAG引脚定义TCK测试时钟输入;TDI测试数据输入,数据通过TDI输入JTAG口;基于单片机的MODBUS通讯器设计13TDO测试数据输出,数据通过TDO从JTAG口输出;TMS测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式。可选引脚TRST测试复位,输入引脚,
38、低电平有效。含有JTAG口的芯片种类较多,如CPU、DSP、CPLD等。JTAG内部有一个状态机,称为TAP控制器。TAP控制器的状态机通过TCK和TMS进行状态的改变,实现数据和指令的输入。JTAG标准定义了一个串行的移位寄存器。寄存器的每一个单元分配给IC芯片的相应引脚,每一个独立的单元称为BSC(BOUNDARYSCANCELL)边界扫描单元。这个串联的BSC在IC内部构成JTAG回路,所有的BSR(BOUNDARYSCANREGISTER)边界扫描寄存器通过JTAG测试激活,平时这些引脚保持正常的IC功能。JTAG的系统板设计和连线关系如图37所示。VREF1VSUPPLY2NTRST
39、3GND4TDI5GND6TMS7GND8TCK9GND10TDO11GND12TDO13GND14NSRST15GND16DBGRQ17GND18DBGACK19GND20J1JTAG10KR1110KR710KR810KR910KR100RR130RR12RESETVCC3V3GNDJNTRSTJTDIJTMSJTCKJTDOJTAG图37JTAG电路图36串口通讯模块串口通讯模块为整个设计的最重要的部分,本系统是基于串口RS232接口加入MODBUS通讯协议,此部分一旦不能工作本系统将变得毫无意义。通讯方式直接利用串口通讯芯片MAX3232,MAX3232有双串口接口,串口1接口与从机相
40、连,连接方式采用RJ45网络通讯接口。串口2接口与DB9接口相连,可以与电脑RS232通讯,便于调试。芯片外部电路图如图38所示。下面简单介绍MAX3232芯片。采用专有低压差发送器输出级,利用双电压在30V至55V电源供电时能够实现真正的RS232性能,器件仅需四个01UF的外部小尺寸电压电容。MAX3232确保在120KBPS数据速率,同时保持RS232输出电平。MAX3232具有二路接收器和二路驱动基于单片机的MODBUS通讯器设计14器,提供1UA关断模式,有效降低功效并延迟便携式产品的电池使用寿命。关断模式下,接收器保持有效状态,对外部设备进行监测,仅消耗1UA电源电流,MAX323
41、2的引脚、封装和功能分别与工业标准MAX242和MAX232兼容。即使工作在高数据速率下,MAX3232仍然能保持RS232标准要求的正负50V最小发送器输出电压。只要输入电压在30V至55V范围以内,即可提供55V(倍压电源)和55V(反相电压)输出电压,电压工作在非连续模式,一旦输出电压低于55V,将开启电压;输出电压超过55V,即可关闭电荷泵,每个电压需要一个电容器和一个储能电容,产生V和V的电压。MAX3232在最差工作条件下能够保证120KBPS的数据速率。通常情况下,能够工作于235KBPS数据速率。C11V2C13C24C25V6T2OUT7R2IN8R2OUT9T2IN10T1
42、IN11R1OUT12R1IN13T1OUT14GND15VCC16U5ST32321234567891110J2DCONNECTOR93V3GND100NFC23100NFC24100NFC25100NFC26GNDPA2PA3PA9PA10U1TXU1RXU2RXU2TXT2OUTT2OUTR2INR2INGND12345678910111213141516P2HEADER16HGNDT1OUTR1INR1INT1OUT470RR20470RR213V33V3LED_LEFTLED_RIGHTPC0PC1232通讯图38串口通讯电路37从机主控模块从机主控采用STC12C5A60S2,最小
43、系统电路图如图39所示。STC12C5A60S2单片机性能特点1、工作频率040M相当于普通8051的080M。2、FLASH程序储存4K64K,RAM数据储存512B1280B。3、内部集成EEPROM2K16K及看门狗和专用复位电路。4、带A/D功能,超小封装。5、24路PWM,810位高速A/D转换。6、有ISP和IAP功能,强抗干扰和降低EMI性能。基于单片机的MODBUS通讯器设计15470NFC910KR2VCCGNDNRSTP151P162P173RST/P474P30/RXD5P43/CCP1/TXD2/SCLK6P31/TXD7P32/INT08P33/INT19P34/T0
44、10P35/T111P3612P3713XTAL214XTAL115GND16P40/SS17P2018P2119P2220P2321P2422P2523P2624P2725P4426ALE/P4527P4128EX_LVD/P46/RST229P0730P0631P0532P0433P0334P0235P0136P0037VCC38P4239P1040P1141P1242P1343P1444U1STC125A60S212Y1110592M10PFC1810PFC19GNDGNDXTAL1XTAL2NRSTXTAL1XTAL2GNDVCCRXDTXDTXD1RXD1LED1LED2LED3LE
45、D4LED5LED6LED7LED8C1C2C3C4KEY1KEY2KEY3KEY4KEY5TEMPLAN_RIGHTLAN_LEFTABCDEFGH图39从机主控模块最小系统38LED灯显示模块LED灯模块采用8个0805封装的LED显示,LED模块电路图如图310所示。利用STC单片机8个I/O端口分别控制8路LED,每一路都用100级PWM来调节LED亮度,每一路亮度值都可通过从机按键设置值,也可在主机触摸屏上设置每一路亮度值,也可以直接控制每一路LED亮灭,通过MODBUS命令下置到从机单片机,从机单片机根据亮度值修改LED亮度。470R3470R4470R5470R6470R7470
46、R8470R9470R10D1D2D3D4D5D6D7D8VCCLED1LED2LED3LED4LED5LED6LED7LED8图310LED灯显示模块39温度检测模块温度的测量使用了DS18B20温度传感器。温度检测模块电路如图311所示。温度传感器的种类众多,在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器当仁不让。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20更受欢迎。基于单片机的MODBUS通讯器设计16DS18B20的主要特征全数字温度转换及输出。先进的单总线数据通信。最高12位分辨率,精度可达土05摄氏度。位
47、分辨率时的最大工作周期为750毫秒。可选择寄生工作方式。检测温度范围为55C125C67F257F内置EEPROM,限温报警功能。位光刻ROM,内置产品序列号,方便多机挂接。多样封装形式,适应不同硬件系统。只需要一条口线通信多点能力,简化了分布式温度传感应用无需外部元件可用数据总线供电,电压范围为30V至55V,无需备用电源,测量温度范围为55C至125。华氏相当于是67F到257华氏度,10C至85C范围内精度为05C。CPU与DS18B20只有一跟数据线连接。为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。因为每一个DS18B20的包含一个独特的序号,多个DS18B20可以同时
48、存在于一条总线。这使得温度传感器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。GND1DQ2VCC3U318B2047KR19VCCGNDTEMP图311温度检测模块基于单片机的MODBUS通讯器设计17第4章软件设计41串口通信模块串行通信是实现单片机与PC及通信的一种基本方式。在本系统中使用的是一个主机三个从机,一片MAX3232做主机通讯接口,另外三个作为从机通讯接口,RS232总线直接使用RS232电平通讯。在串行通信的实现中,本系统采用了串口通信工作方式一,波特率115200的方案。在串行通信过程中必然涉及寄存器以及定时器的配置
49、。TMOD(定时器寄存器)GATEC/TM1M0GATEC/TM1M0T1方式字段T0方式字段TMOD|0X20即定时器T1工作在方式2(自动重装的8位定时器)。SCON(串行口控制寄存器)SM0SM1SM2RENTB8RB8TIRISCON0X50即串行口工作方式一(8位UART,波特率可变)。由于单片机需要对数据帧进行处理,而处理数据帧所需要的时间相对比较长,为了提高单片机的效率,在串行通信时,应该采用中断方式接受数据帧。一般而言,中断函数应该尽可能的简单。所以中断函数只负责接受数据帧,而对于接收数据帧的处理则放在主函数里。42数据帧处理模块数据帧处理是整个系统的核心部分,在现场总线技术中有着至关重要的作用。必须了解MODBUS的各个功能对应的帧格式,理解其含义和本质,然后才能找到对应信息去对其相应的处理。根据MODBUS协议,其RTU模式数据帧格式如下12345678从机地址MODBUS命令起始寄存器高字节起始寄存器低字节寄存器数高字节寄存器数低字节CRC低字节CRC高字节基于单片机的MODBUS通讯器设计18硬件采用RS232,主从式半双工通讯,主机呼叫从机地址,从机应答方式通讯。数据帧10位,1个起始位,8个数据位,1个停止位,无校验。在数据帧处理过程中,首先判断数据帧是否完整,然后判断是不是发给本从机。对完整数据帧进