第1章 绪 论
1.1 选题背景与依据
1.1.1 选题背景
在80年代末CAN最初出现在汽车工业中,是由德国的Bosch公司最先提出。当时,由于消费者对于汽车功能的要求越来越多,而这些功能的实现大多是基于电子操作的,这就使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线。提出CAN总线的最初动机就是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。于是,他们设计了一个单一的网络总线,所有的外围器件可以被挂接在该总线上。1993年,CAN 已成为国际标准ISO11898(高速应用)和ISO11519(低速应用)。CAN是一种多主方式的串行通讯总线,基本设计规范要求有高的比特率,高抗电磁干扰性,而且能够检测出产生的任何错误。由于CAN总线具有很高的实时性能,因此,CAN已经在汽车工业、航空工业、工业控制、安全防护等领域中得到了广泛应用。
温湿度检测系统的应用前景宽广,工农业生产,科学研究,生活等领域都离不开温湿度控制系统。比如农业上要求能够实现智能化农业生产管理得利用温湿度检测系统;要实现养殖业的规模化与自动化,让被养殖的动物在他们适宜的温度与湿度下生长,这对养殖产业的发展和壮大起着十分重要的作用;粮食的储存也需要对温湿度进行严格的控制,以防止粮食的变质;在科学研究方面,温湿度检测系统能够保证温度、湿度的恒定或者变化,适应与科学的研究,排除或者考察温湿度对某项研究起到的作用。
1.1.2 发展及现状
CAN总线在组网和通信功能上的优点,以及它的高性价比决定了它在许多领域都有广阔的应用前景和发展潜力。大型仪器设备系统复杂,需要对多种信息进行采集、处理、控制、输出等操作。如医疗器械CT断层扫描仪,为保证其可靠工作,在数据通信上要求功能块间可随意进行数据交换、通信能以广播方式进行、简单经济的硬件接口、通信线尽量少、抗干扰能力强、可靠性高并能自动进行故障识别和自动恢复。但是,这些要求长时间未能得到很好的解决,直至CAN总线技术出现才提供了一个较好的解决方法。
在工农业生产、气象、环保、国防、科研、航天等部门,经常需要对环境温湿度进行测量和控制。准确测量温湿度对于生物制药、食品加工、造纸等行业更是至关重要的。但是相比而言,测量湿度要比测量温度更复杂,这是因为温度是个独立的被测量,而湿度却受大气压强和温度的影响。目前,温湿度测量领域的新技术不断涌现,新产品也层出不穷。主要表现在以下两方面:
1、温湿度传感器正从分立组件向集成化、智能化、系统化的方向迅速发展,为开发新一代温湿度测控系统创造了有利条件;
2、在温湿度测量系统中普遍采用线性化处理、自动温度补偿和自动校准湿度等新技术。
随着信息时代的到来,数字化技术的发展,传感器技术也得到了显著的发展。现代信息技术的三大基础是信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)。传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。
1.1.3 选题意义
在以往的国内测控领域,由于没有更好的选择,大多采用BITBUS或RS-485作为通信总线。其不足主要有:只能有一个主节点,主节点一旦出现故障就可能引起系统瘫痪;数据通信为命令响应,传输率低;错误处理能力弱。采用CAN总线技术后即可解决上述问题。CAN网络上任何一个节点均可作为主节点主动地与其它节点交换数据;CAN网络节点的信息帧可以分出优先级,这对于有实时性要求的控制提供了方便;CAN的物理层及数据链路层有独特的设计技术,使其在抗干扰以及错误检测等方面的性能均大大提高。CAN的上述特点使其成为诸多工业测控领域中首选的现场总线之一。
温湿度控制系统的应用前景宽广,广泛应用于农、林、牧、副、渔和工业生产的控制中,如各种仓库( 冷库、保鲜库、粮库等)、各种日光温室、大棚、机房、图书馆、食品加工(酒、酱油、醋及各种发酵工艺)孵化、养殖业等需要温湿度监测和控制的场所等等,产品应用先进的单片机技术,智能程度高、数据稳定可靠,它除了可单独控制各种设备进行温湿度控制或报警外,还可通过扩展接口进行其他设备的实时控制和远程控制。配合计算机可组成综合环境数据监控网。数据可通过总线传输到计算机进行记录或打印、遥控。温湿度自动化控制器与计算机连接,可实现多点远距离通讯。计算机通过系统监控软件提供温湿度自动化控制器和整个系统的交互功能,以及通过数据通讯线路与现场控制机的交互功能。现场数据采集部分通过各种传感器分别对各种环境因素数据进行实时、不断的自动收集。现场控制机通过传感器收集现场数据采集各种资料,由现场监控软件进行处理并进行实时控制。
我们选用ARM7微处理器来完成这次的温湿度检测系统,因为ARM7有着较MCS51(传统的8位单片机)更多的RAM资源,ARM7的片内FLASH可达到256KB是MCS51的16倍。并且ARM7系列队工业控制体现出良好的稳定性与时速性,它的主频最大可达到60MHZ。
选用周立功EasyARM2200实验板为参考板,主控芯片是LPC2292。不仅能够对我的大学四年的知识进行一个总结运用,而且能够紧跟时代的发展脉搏,吸取最新鲜的知识体系。并且运用ARM微处理器设计出来的温度控制系统体系(上/下位机)有着较好的市场前景,顺应技术的发展。
1.2 系统综述
1.2.1 系统工作过程
系统主要工作过程为:首先温湿度传感器将采集到的数据以物理量的形式传送给从节点控制芯片,芯片在接收到数据以后将数据进行处理、打包成为符合CAN协议的信息帧,然后使用CAN收发器将数据通过CAN总线发送给主控节点的主控制芯片。然后数据在主控芯片中被解包,提取有效信息。最后通过串口将数据传回主机显示,同时将数据送LED显示当前温湿度。其中主控芯片解包提取到的有效数据以后,还要将提取到的当前温湿度值同设定的值比较,通过比较判断当前状态如何,并通过LED显示当前状态。
1.2.2 系统总体构成
系统由一个远程PC机、一个主控节点和一些从节点组成。从节点通过传感器对环境温湿度进行实时采集,采集到的数据通过I2C总线传给控制芯片,然后芯片对采集到的数据进行识别。如果是有效数据,那么将数据打包发送到CAN总线;如果数据无效,那么继续等待有效数据。发送到CAN总线上的有效数据通过收发器被主控节点接收,然后对数据解包处理,提取有效数据。然后将提取出来的有效数据一方面通过串口传给PC机,PC机在接收到数据后,通过上位机程序把刚接收到的有效数据显示在PC机的窗口中;另一方面有效数据通过主控芯片送LED显示模块,实现对温湿度的实时显示。从总体来说主控节点就是数据的中转站,是非常重要的。总体组成如图1-1所示。
图1-1 系统总体示意图
上位机通过串口与主控节点相连,实现各控制节点与上位机的通信。各控制节点通过CAN总线相连,实现数据的远程通信。主控节点在接收到上位机发送的命
令后,主控节点将接收到的数据通过CAN总线向受控节点以广播方式发送出去,受控节点根据命令进行相应的响应。主控节点将其它控制节点的响应数据上传PC机,主控节点就相当于是数据中转站,负责所有节点与PC机的数据通信,但它本身又是一个独立的与其它控制节点有相同功能的节点。PC机运行上位机监控程序,该程序选用VC++编写。
控制节点是整个系统的核心,它既要能满足本地的控制处理功能,又要求具备较强的通信处理能力。其结构如图1-2所示。
图1-2 控制节点框图
第2章 系统原理介绍
2.1 CAN总线协议和工作原理
2.1.1 CAN总线的特性
1、CAN是到目前为止唯一有国际标准的现场总线。
2、CAN为多主方式工作,网络上任一节点均可在任一时刻主动地向网络上其他节点发送信息,而不分主从。
3、在报文标识符上,CAN上的节点分成不同的优先级,可满足不同的实时需要,优先级高的数据最多可在134μs内得到传输。
4、CAN采用非破坏总线仲裁技术。当多个节点同时向总线发送信息发生冲突时,优先级较低的节点会主动的退出发送,而最高优先级的节点可不受影响的继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下,也不会出现网络瘫痪的情况(以太网则可能)。
5、CAN节点只需要通过对报文的标识符滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据。
6、CAN的直接通信距离最远可达10km(速率5kbps以下);通信速率最高可达1Mbps(此时通信距离最长为40m)。
7、CAN上的节点数取决于总线驱动电路,目前可达110个。在标准帧报文标识符有11位,而在扩展帧的报文标识符(29位)的个数几乎不受限制。
8、报文采用短帧结构,传输时间短,受干扰概率低,保证了数据出错率极低。
9、CAN的每帧信息都有CRC校验及其他检错措施,具有极好的检错效果。
10、CAN通信介质可为双绞线、同轴电缆或光纤,选择灵活。
11、CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响。
2.1.2 CAN的报文格式
在总线中传送的报文,每帧由7部分组成。CAN协议支持两种报文格式,其唯一的不同是标识符(ID)长度不同,标准格式为11位,扩展格式为29位。在标准格式中,报文的起始位称为帧起始(SOF),然后是由11位标识符和远程发送请求位(RTR)组成的仲裁场。RTR位标明是数据帧还是请求帧,在请求帧中没有数据字节。控制场包括标识符扩展位(IDE),指出是标准格式还是扩展格式。它还包括一个保留位(ro),为将来扩展使用。它的最后四个字节用来指明数据场中数据的长度(DLC)。数据场范围为0 ~ 8个字节,其后有一个检测数据错误的循环冗余检查(CRC)。应答场(ACK)包括应答位和应答分隔符。发送站发送的这两位均为隐性电平(逻辑"1"),这时正确接收报文的接收站发送主控电平(逻辑"0")覆盖它。用这种方法,发送站可以保证网络中至少有一个站能正确接收到报文。
2.1.3 CAN的两种存在形式
1、具有11位ID标识符的BasicCAN;
2、带有扩展成29位ID标识符的高级形式PeliCAN。
内部的验收滤波器屏蔽滤波器可通过标识符ID来接收需要的报文,屏蔽不相关的报文,即只向CPU提交合适的报文。
Philips、Intel、Siemens的CAN芯片均支持BasicCAN和PeliCAN。同时,PeliCAN协议允许两段长度的标识符。
PeliCAN A部分使用11位报文标识符能够识别出2032个不同的标识符(保留十六位作为ID,但只有低11位有效),此部分兼容BasicCAN。
PeliCAN B部分有29位能够产生536870912个不同的标识符。
PART A的设备只能用标准的CAN协议发送和接收。如果在29位ID的扩展CAN系统中使用PART A的设备会发生错误并破坏网络。SIEMENS 81C90和81C91是相类似的PART A 11位ID设备,但可在扩展CAN上使用而不会引起总线错误,原因很简单:因为它们忽略了扩展CAN帧而是被认为是PART B设备。
PART B设备的PeliCAN可根据设定工作于其中一种模式下。
数据链路层定义了报文传输的格式和定时协议这里有两种描述符都能达到8字节的数据描述符是非常重要的因为它们定义了报文的优先权以及报文传输的类型。
2.1.4 CAN的可靠性分析
为防止汽车在使用寿命期内由于数据交换错误而对司机造成危险,汽车的安全系统要求数据传输具有较高的安全性。如果数据传输的可靠性足够高,或者残留下来的数据错误足够低的话,这一目标不难实现。从总线系统数据的角度看,可靠性可以理解为,对传输过程产生的数据错误的识别能力。
残余数据错误的概率可以通过对数据传输可靠性的统计测量获得。它描述了传送数据被破坏和这种破坏不能被探测出来的概率。残余数据错误概率必须非常小,使其在系统整个寿命周期内,按平均统计时几乎检测不到。计算残余错误概率要求能够对数据错误进行分类,并且数据传输路径可由一模型描述。如果要确定CAN的残余错误概率,我们可将残留错误的概率作为具有80 ~ 90位的报文传送时位错误概率的函数,并假定这个系统中有5 ~ 10个站,并且错误率为1/1000,那么最大位错误概率为10 ~ 13数量级。例如,CAN网络的数据传输率最大为1Mbps,如果数据传输能力仅使用50%,那么对于一个工作寿命4000小时、平均报文长度为80位的系统,所传送的数据总量为9×1010。在系统运行寿命期内,不可检测的传输错误的统计平均小于 数量级。换句话说,一个系统按每年365天,每天工作8小时,每秒错误率为0.7计算,那么按统计平均,每1000年才会发生一个不可检测的错误。
2.2 传感器原理
2.2.1 传感器的分类
传感器一般是根据物理学、化学、生物学等特性、规律和效应设计而成的。由某一原理设计的传感器可以同时测量多种非电量,而有时一种非电量又可用几种不同的传感器测量,因此传感器的分类方法有很多,一般可按如下几种方法分类:
1、按输入物理量分
按输入物理量的性质进行分类,如速度传感器、温度传感器、位移传感器等。 这种分类方法是按输入物理量命名的。其优点是比较明确地表达了传感器的用途,便于使用者根据其用途使用。但是这种分类方法是将原理互不相同的传感器归为一类,很难找出每种传感器在转换机理上有何共性和差异。
2、按工作原理分
这种分类方法是以工作原理,将物理和化学等学科的原理和、规律和效应作为分类依据,如电压式、热电式、电阻式、光电式、电感式等。
这种分类方法的优点是对于传感器的工作原理比较清楚,类别少
[9]
,利于对传感器进行深入分析和研究。
3、按能量的关系分
根据能量的观点分类,可将传感器分为有源传感器和无源传感器。前者将非电能量转换为电能量,称之为能量转换型传感器。通常配合有电压测量电路和放大器,如压电式、热电式、电磁式等。无缘传感器又称能量控制型传感器。它本身不是一个换能器,被测非电量仅对传感器中能量起控制或调节作用。所以,它们必须有辅助电源,这类传感器有电阻式、电容式、电感式等。
4、按输出的信号的性质分
分为模拟式和数字式传感器,即传感器的输出量为模拟量或数字量。数字传感器便于与计算机连用,且抗干扰性强,例如盘式角压数字传感器,光栅传感器等。
5、按照其制造工艺分
按制造工艺分类,可以将传感器分为集成传感器、薄膜传感器、厚膜传感器和陶瓷传感器。
集成传感器是用标准的生产硅基半导体集成电路的工艺技术制造的。通常还将用于初步处理被测信号的部分电路也集成在同一芯片上。
薄膜传感器则是通过沉积在介质衬底(基板)上的,相应敏感材料的薄膜形成的。使用混合工艺时,同样可将部分电路制造在此基板上。
厚膜传感器是利用相应材料的浆料,涂覆在陶瓷基片上制成的,基片通常是Al2O3制成的,然后进行热处理,使厚膜成形。
每种工艺技术都有自己的优点和不足。由于研究、开发和生产所需的资本投入较低,以及传感器参数的高稳定性等原因,采用陶瓷和厚膜传感器比较合理。
2.2.2 传感器的应用领域
随着电子计算机、生产自动化、现代信息、军事、交通、化学、环保、能源、海洋开发、遥感、宇航等科学技术的发展,对传感器的需求量与日俱增,其应用的领域已渗入到国民经济的各个部门以及人们的日常文化生活之中。可以说,从太空到海洋,从各种复杂的工程系统到人们日常生活的衣食住行,都离不开各种各样的传感器,传感技术对国民经济的发展日益起着巨大的作用。现就传感器在一些主要领城中的应用进行简要介绍。
1、传感器在工业检测和自动控制系统中的应用传感器在工业自动化生产中占有极其重要的地位。在石油、化工、电力、钢铁、机械等加工工业中,传感器在各自的工作岗位上担负着相当于人们感觉器官的作用,它们每时每刻地按需要完成对各种信息的检测,再把大量测得的信息通过自动控制、计算机处理等进行反馈,用以进行生产过程、质量、工艺管理与安全方面的控制。在自动控制系统中,电子计算机与传感器有机地结合在实现控制的高度自动化方面起到了关键的作用。
2、汽车与传感器。目前,传感器在汽车上的应用及燃料剩余量等有关参数的测量。已不只局限于对行驶速度、行驶距离、发动机旋转速度以由于汽车交通事故的不断增多和汽车对环境的危害,传感器在一些新的设施,如汽车安全气囊系统、防盗装置、防滑控制系统、防抱死装置、电子变速控制装置、排气循环装置、电子燃料喷射装置及汽车“黑匣子”等都得到了实际应用。可以预测,随着汽车电于技术和汽车安全技术的发展,传感器在汽车领域的应用将会更为广泛。
3、传感器与家用电器。现代家用电器中普遍应用着传感器。传感器在电子炉灶、自动电饭锅、吸尘器、空调器、电子热水器、热风取暖器、风干器、报警器、电樊斗、电风扇、游戏机、电子驱蚊器、洗衣机、洗碗机、照相机、电冰箱、彩色电视机、录像机、录音机、收音机、电唱机及家庭影院等方面得到了广泛的应用。随着人们生活水平的不断提高,对提高家用电器产品的功能及自动化程度的要求极为强烈。为满足这些要求,首先要使用能检测模拟量的高精度传感器,以获取正确的控制信息,再由微型计算机进行控制,使家用电器的使用更加方便、安全、可靠,并减少能源消耗,为更多的家庭创造一个舒适的生活环境。
4、传感器在机器人上的应用。目前,在劳动强度大或危险作业的场所,已逐步使用机器人取代人的工作。一些高速度、高精度的工作,由机器人来承担也是非常合适的。但这些机器人多数是用来进行加工、组装、检验等工作,屑于生产用的自动机械式的单能机器人。在这些机器人身上仅采用了检测臂的位置和角度的传感器。要使机器人和人的功能更为接近,以便从事更高级的工作,要求机器人能有判断能力,这就要给机器人安装物体检口传感器,特别是视觉传感器和触觉传感器,使机器人通过视觉对物体进行识别和检测,通过触觉对物体产生压觉、力觉、滑动感觉和重量感觉。这类机器人被称为智能机器人,它不仅可以从事特殊的作业,而且一般的生产、事务和家务,全部可由智能机器人去处理。
5、传感器在医疗及人体医学上的应用。随着医用电子学的发展,仅凭医生的经验和感觉进行诊断的时代将会结束。现在,应用医用传感器可以对人体的表面和内部温度、血压及腔内压力、血液及呼吸流量、肿瘤、血液的分析、脉波及心音、心脑电波等进行高难度的诊断。显然,传感器对促进医疗技术的高度发展起着非常重要的作用。为增进全国人民的健康水平,我国医疗制度的改革,将把医疗服务对象扩大到全民。以往的医疗工作仅局限于以治疗疾病为中心,今后,医疗工作将在疾病的早期诊断、早期治疗、远距离诊断及人工器官的研制等广泛的范围内发挥作用,而传感器在这些方面将会得到越来越多的应用。
6、传感器与环境保护。目前,环球的大气污染、水质污浊及噪声已严重地破坏了地球的生态平衡和我们赖以生存的环境,这一现状已引起了世界各国的重视。为保护环境,利用传感器制成的各种环境监测仪器正在发挥着积极的作用。
7、传感器与航空及航天。在航空及航天的飞行器上广泛地应用着各种各样的传感器。为了解飞机或火箭的飞行轨迹,并把它们控制在预定的轨道上,就要使用传感器进行速度、加速度和飞行距离的测量。要了解飞行器飞行的方向,就必须掌握它的飞行姿态,飞行姿态可以使用红外水平线传感器陀螺仪、阳光传感器、星光传感器及地磁传感器等进行测量。此外,对飞行器周围的环境、飞行器本身的状态及内部设备的监控也都要通过传感器进行检测。
8、传感器与遥感技术。所谓遥感技术,简单地说就是从飞机、人造卫星、宇宙飞船及船舶上对远距离的广大区域的物体及其状态进行大规模探测的一门技术。在飞机及航天飞行器上装用的传感器是近紫外线、可见光、远红外线及微波等传感器。在船舶上向水下观测时多采用超声波传感器。例如,要探测一些矿产资源埋藏在什么地区,就可以利用人造卫星上的红外接受传感器特地面发出的红外线的量进行测量,然后由人造卫星通过微波再发送到地面站,经地面站计算机处理,便可根据红外线分布的差异判断出埋有矿藏的地区。遥感技术目前已在农林业、土地利用、海洋资源、矿产资源、水利资源、地质、气象、军事及公害等领域得到了应用。
2.3 串口通讯原理
2.3.1 RS-232串行通信方式
RS-232是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号。RS-232总线标准设有25条信号线,包括一个主通道和一个辅助通道。
RS-232有单向,半双向和全双向三种通信方式。单向通信是一种最简单的通信方式,RS-232接口仅由二根导线组成。一根信号线以精确的时间间隔传输一连串串 [9]
行数据位,一次传送1位数据"0"或"1"。另一根线是信号地线。这种仅在一个方向传送数据的通信方式称为单向通信,其二线接口称为单向接口。
半双向通信方式中,数据仅在二根导线(一根信号线,一根地线)进行双向传输,不过,在同一时间仅在一个方向可使用半双向接口,即:不能同时双方通信。因此,两端设备需采用一种方法进行协调,在任何给定的时刻,确定谁是发送者,而谁是接收者。半双向接口通常通过从发送器向接收器传送信号交换代码告诉接收器,现在该接收器变成发送器可发送数据,同时,原发送器变成接收器等待接收数据。不过,这种信号交换方式也可采用传送RS-232规定的信号(例如“请求发送”、“清除发送”信号)来实施,此时,收发两端之间需再增加两根导线。一根用于传送“请求发送”信号,另一用于传送“清除发送”信号。
全双向RS-232通信需要三根导线,一根信号线向一个方向传送数据,一根信号线向相反方向传送数据,另一根导线是信号地线。两端设备可同时传送数据,于是避免了信号交换代码或额外的信号交换导线。这是一种最常用的通信接口方式。
在串行通行中,数据字节被拆成一连串"0"或"1"数据位在单根导线上从一端设备传送到另一端设备。接收端设备需要知道发送端以多大传送速率(用波特率表示)传送数据位,以便重新将其组合成字节。通常有两种方法实施传送速率的匹配,一种方法是,另用一根导线从发送端向接收端传送一个时钟信号,此法常用于同步通信中。另一种方法是,通信前,发送端和接收端必须使用双方协商一致的通信协议,其中包括传送速率的规定,此法常用于非同步通信,RS-232通信就采用此法。
在非同步通信协议中,最重要的参数是传送速率,也称为波特率,用每秒比特数(bps)表示,一些设备利用机内设置开关或跳线来改变波特率,不过,越来越多的设备则用软件或菜单来改变波特率。
非同步通信方式在多数时间通信是空闲的,并等待发送的数据,这就涉及到需要知道数据何时由发送端发出的问题。为此,除了8个数据位(构成一个字节)信息外,非同步通信要求一个起始位和一个停止位,以便接收端知道一个数据字节正在传送,线路不再空闲。
非同步通信协议还有一个参数需设置,即奇偶校验位(奇数、偶数或没有)该位决定是否需将一个比特加到每组数据位上,以使数据位正确有效。奇偶校验位由发送端生成,并在接收端对发送的每个字节进行校验。
2.3.2 RS-232电平与TTL电平 比较
TTL电平信号被利用的最多是因为通常数据表示采用二进制规定,+5V等价于逻辑"1",0V等价于逻辑"0",这被称作TTL(晶体管-晶体管逻辑电平)信号系统,这是计算机处理器控制的设备内部各部分之间通信的标准技术。TTL电平信号对于计算机处理器控制的设备内部的数据传输是很理想的,首先计算机处理器控制的设备内部的数据传输对于电源的要求不高以及热损耗也较低,另外TTL电平信号直接与集成电路连接而不需要价格昂贵的线路驱动器以及接收器电路;再者,计算机处理器控制的设备内部的数据传输是在高速下进行的,而TTL接口的操作恰能满足这个要求。TTL型通信大多数情况下,是采用并行数据传输方式,而并行数据传输对于超过10英尺的距离就不适合了。这是由于可靠性和成本两面的原因。因为在并行接口中存在着偏相和不对称的问题,这些问题对可靠性均有影响;另外对于并行数据传输,电缆以及连接器的费用比起串行通信方式来也要高一些。
RS-232接口的电平范围是-15V到+15V,它的逻辑"0"代表电平+3 ~ +15V,它的逻辑"1"代表-3 ~ -15V。在单片机范围内,RS-232由于没有负电源,所以使用非常规的接口电平0 ~ 5V。如果需要和PC连接,就需要进行电平转换,将TTL电平转换为RS-232电平,才能被PC识别。同理,RS-232电平也需要经过TTL电平转换才能被单片机所识别。
2.4 I2C总线
(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。 总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。
2.4.1 总线特征
I2C总线的一些特征:
1、只要求两条总线线路一条串行数据线SDA一条串行时钟线SCL;
2、每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机从机关系软件设定地址主机可以作为主机发送器或主机接收器;
3、它是一个真正的多主机总线如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏;
4、串行的8位双向数据传输位速率在标准模式下可达100kbit/s快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s;
5、片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整;
6、连接到相同总线的IC数量只受到总线的最大电容400pF限制。
总线的这些特征,为它的广泛应用奠定了基础。
2.4.2 总线工作原理
1、总线的构成
I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
2、I2C总线的两种数据传输类型
(1)主发送器向从接收器发送数据,即主发送,从机接收。主机发送的第一个字节是从机地址,接下来是数据字节流。从机每接收一个字节返回一个应答位。
(2)从发送器向主接收器发送数据,即主接收,从机发送。第一个字节(从地址)由主机发送,然后从机返回一个应答位,接下来从机向主机发送数据字节。主机每接收一个字节返回一个应答位,接收完最后一个字节,主机返回一个"非应答位"。
当主机产生起始条件或重新起始条件,发送从机寻址字节(从机地址+读写操作位)之后,即开始一次串行数据发送/接收。当出现停止条件时,此次数据传输结束。
3、总线信号类型
I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。
开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
结束信号:SCL为低电平时,SDA由低电平 [9]
向高电平跳变,结束传送数据。
应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况做出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。
2.4.3 总线基本操作
I2C规定运用主/从双向通讯。器件发送数据到总线上,则定义为发送器;器件从总线上接收数据,则定义为接收器。主器件和从器件都可以工作于接收和发送状态。总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。如图2-1所示。
图2-1 起始和停止条件
在起始条件之后,必须是器件的控制字节,其中高四位为器件类型识别符
(不同的芯片类型有不同的定义,EEPROM一般应为"1010"),接着三位为片选,最后一位为读写位,当为"1"时为读操作,为"0"时为写操作。如图2-2所示。
图2-2 器件控制字节第3章 系统方案选择与电路设计
3.1 各模块方案的选择
3.1.1 系统微控制器的选择
方案一:选择51单片机作为系统的主控芯片。51单片机是应用最为广泛的8位单片机,技术比较成熟、并且其编程简单、易开发、成本低廉、功能也较为完善,因此被广泛应用在工业自动控制领域和智能家电控制领域。
方案二:选择Philips公司基于ARM7的微处理器LPC2292作为系统的核心控制部件。LPC2292是一款基于16位ARM7TDMI-S并支持实时仿真和跟踪的CPU,并带有256kB嵌入的高速Flash存储器(主频可达60MHz)。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%而性能的损失却很小。LPC2292采用144脚封装、极低的功耗(核心电压仅1.8V)、多个32位定时器、8路10位ADC、2路高级CAN通道、PWM输出以及多达9个的外部中断。结合本系统的要求来看,此款控制器是非常不错的选择。
通过比较这两种方案,本设计最终选定LPC2292作为本温湿度测量系统的微控制器,因为LPC2292高速高精度以及丰富的片内外设特点,很适合本系统各项性能指标的要求,同时能大大的减化外围功能电路的设计,缩短开发周期,节省外围开发成本。
3.1.2 传感器的选择
方案一:采用独立的温度、湿度传感器。温度传感器采用DS18B20,DS18B20是由Dallas公司生产的单线总线的数字温度传感器。温度测量范围为-55℃ ~ 125℃(并且在温度测量范围内可软件设定温度上下限),供电范围为3.0V ~ 5.5V(可通过数据线供电)。温度分辨率可由用户程序设定为9-12位。DS18B20精度高,转换速度快,采用单线总线实现通信,节约I/O口;且直接输出数字量,无须外加A/D转换电路,是一款非常理想的温度传感器。湿度传感器准备采用HIH3610湿度传感器,其低功耗设计、200µA驱动电流,很适合电流供电的低功耗系统;稳定性好、低漂移、抗化学腐蚀性能;5V DC输入,0.8V ~ 3.9V DC输出;工作范围:–40 ~ 85℃,0 ~ 100%RH。
方案二:采用集成的温湿度传感器。SHT10是瑞士Scnsirion公司推出的一款数字温湿度传感器芯片。该芯片广泛应用于暖通空调、汽车、消费电子、自动控制等领域。具有高度集成、接口简单,支持CRC传输校验,传输可靠性高、内置A/D转换器、测量精确度高、封装尺寸超小、可靠性高等特点。
通过对以上两个方案的对比,我直接放弃第一方案,第二个方案虽然占用I/O较第一方案多,但是采用SHT10进行温湿度实时监测的系统具有精度高、成本低、体积小、接口简单等优点;另外SHT10芯片内部集成了14位A/D转换器,且采用数字信号输出,因此抗干扰能力也比同类芯片高。本设计选择第二个方案。
3.1.3 通讯模块总线的选择
远程通信通常可以采用RS-232接口标准的串口通信、CAN总线通信和TCP协议通信。
方案一:利用RS-232实现远程通信。RS-232标准是美国电气工业联合会(EIA)制定的利用平衡双绞线作传输线的多点通讯标准,它采用差分信号进行传输。但由于RS-232不涉及通信协议,无纠错、容错、防网络堵塞等功能,我们在设计时未采用此方案。
方案二:运用TCP协议实现远程通信。TCP协议通信比较复杂,编写程序有一定的困难性。另外由于TCP本身的特性,若在网络信息量比较大的时候,网络传载信息负荷比较大时容易出现网络拥塞,通信就会出现一定的延迟,这将影响到温度控制系统对温度测控的实时性与准确性,使得系统性能不稳定。
方案三:利用CAN总线实现远程通信。CAN是一种串行通信协议,它能有效支持高安全等级的分布实时控制,以多主方式工作,网络上任一节点均可在任意时刻主动向网络上其它节点发送信息,而不分主从;节点在错误严重的情况下具有自动关闭输出功能,以使总线上其它节点的操作不受影响;报文采用短帧结构,传输时间短,受干扰概率低,保证了数据出错率极低;每帧信息都有CRC校验及其它检错措施,具有极好的检错效果。由于采用了许多新技术及独特的设计,CAN总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。
通过对比,本设计选择了方案三,用于站点与站点之间的通信,上位机与各个站点之间的通信是通过主控节点的串口实现的。
3.1.4 显示模块的选择
本系统主要是显示环境当前的温湿度,并显示当前系统的工作状态。使用LCD或者LED都可以实现。
方案一:采用LCD显示模块,LCD为英文Liquid Crystal Display的缩写,即液晶显示器,是一种数字显示技术,可以通过液晶和彩色过滤器过滤光源,在平面面板上产生图像。能显示测得温、湿度值和系统当前的工作状态等。还可以很方便地显示字符和汉字,但价格较高。
方案二:采用LED显示模块,LED之所以受到广泛重视并得到迅速发展,是因为它本身有活动、很多优点。例如:亮度高、工作电压低、功耗小、易于集成、驱动简单、寿命长、耐冲击且性能稳定,其发展前景极为广阔。目前正朝着更高亮度、更高耐气候性和发光密度、发光均匀性、全色化发展。所以采用LED同样能很好的显示环境当前温湿度和系统的工作状态,而且价格便宜。
通过对比两方案,在显示的实现上方案一更加多样化,但是结合本设计的实际情况,选择了方案二。
3.1.5 CAN收发器的选择
方案一:TJA1050是CAN协议控制器和物理总线之间的接口。它最初是应用在波特率范围
[9]
在60k波特到1M波特的高速自动化应用中。TJA1050可以为总线提供不同的发送性能,为CAN控制器提供不同的接收性能。而且它与“ISO 11898”标准完全兼容。TJA1050有一个电流限制电路,保护发送器的输出级,使由正或负电源电压意外造成的短路不会对TJA1050造成损坏(此时的功率消耗增加)。TJA1050还有一个温度保护电路,当与发送器的连接点的温度超过大约165℃时,会断开与发送器的连接。因为发送器消耗了大部分的功率,所以这个集成电路的功率消耗和温度会较低。但是此时IC的其他功能仍继续工作。允许选择两种不同的工作模式:高速模式或静音模式。
方案二:PCA82C50是CAN协议控制器和物理总线间的接口,它主要是为汽车中高速通讯(高达1Mbps)应用而设计。此器件对总线提供差动发送能力,对CAN控制器提供差动接收能力,完全符合“ISO11898”标准。一个限流电路可防止发送输出级对电池电压的正端和负端短路。虽然在这种故障条件出现时,功耗将增加,但这种特性可以阻止发送器输出级的破坏。在节点温度大约超过160℃时,两个发送器输出端的极限电流将减少。由于发送器是功耗的主要部分,因此芯片温度会迅速降低。IC的其他所有部分将继续工作。允许选择三种不同的工作模式:高速、待机、斜率控制。
通过对比两收发器,各方面性能都比较接近,但是考虑到在应用方面的TJA1050更容易上手,而且TJA1050性能稍好,并且提供的两种工作模式比较适合此次设计的需要,选择了第一种方案。
3.2 温湿度采集模块电路设计
本模块采用了集成的温湿度传感器SHT10,SHT10是瑞士Scnsirion公司推出的一款数字温湿度传感器芯片。该芯片广泛应用于暖通空调、汽车、消费电子、自动控制等领域。其主要特点如下:
1、高度集成,将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上;
2、提供二线数字串行接口SCK和DATA,接口简单,支持CRC传输校验,传输可靠性高;
3、测量精度可编程调节,内置A/D转换器(分辨率为8 ~ 12位,可以通过对芯片内部寄存器编程来选择);
4、测量精确度高,由于同时集成温湿度传感器,可以提供温度补偿的湿度测量值和高质量的露点计算功能;
5、封装尺寸超小(7.62 mm×5.08mm×2.5 mm),测量和通信结束后,自动转入低功耗模式;
该芯片共有8个引脚,其中第1脚(GND)接地、第4脚(VDD)接+5V电源,由于在系统中为了避免总线冲突,传感器数据的传输采用了I2C总线。I2C总线通过两根线——串行数据线(SDA)和串行时钟线(SCL)连接到总线上任何一个器件,每个器件都应有唯一的地址,而且都可以作为一个发送器或接收器。所以芯片的第2脚(DATA)需要与 总线的SDA引脚相连,芯片的第3脚(SCK)与 总线的SCL引脚相连。具体电路如图3-1所示。
图3-1 温湿度采集电路
3.3 显示模块电路设计
3.3.1 状态显示电路设计
本电路采用了一片74HC595驱动8个LED灯。74HC595是硅结构的CMOS器件,兼容低电压TTL电路,遵守JEDEC标准。74HC595是一个串行输入、并行输出并且带锁存功能的非常实用的移位寄存器,它的并行口有三态输出,即:高电平、低电平、高阻抗。 移位寄存器和存储器是分别的时钟。数据在SRCLK的上升沿输入,在RCLK的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(SER),和一个串行输出(QH'),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能 时,存储寄存器的数据输出到总线。其时钟(SRCLK)和数据(SER)分别接到LPC2292中SPI接口的SCLK0和MOSI0,这样就可以从芯片发送数据到74HC595;片选(RCLK,即74HC595输出触发端)与P0.8口连接,由P0.8控制74HC595数据锁存输出;而最高位(QH')连接到LPC2292中SPI接口的MISO0,可用来读回数据。电路中8个电阻都采用阻值为470欧的电阻。VCC和SRCLR引脚分别接电源,GND和 引脚都接地。其具体连接电路如图3-2所示。
图3-2 系统工作状态显示电路
3.3.2 温湿度显示电路设计
本电路采用了芯片74LS164,74LS164为8位移位寄存器,其主要电气特性的典型值如表3-1所示。
表3-1 74LS164典型值
型号 fm Pn
74164 36MHz 185mW
74LS164 36MHz 80mW
当清除端(CLR)为低电平时,并行输出端(QA ~ QH)均为低电平。串行数据输入端(A,B)可控制数据。当A、B任意一个为低电平,则禁止新数据输入。当A、B有一个为高电平,则另一个就允许输入数据。
引脚CLOCK为时钟输入端,引脚CLR为同步清除输入端(低电平有效),引脚A,B为串行数据输入端,QA-QH为数据输出端。电源电压极限值为7V,输入电压极限值为5.5V,工作环境温度为0 ~ 70℃。本电路使用三个LED来实现对温度和湿度值的显示,芯片74LS164的A,B端为串行数据输入端,本电路中接LPC2292的一个I/O口(在软件中定义),其CLK引脚与LPC2292的时钟线连接。具体电路如图3-3所示。
图3-3 环境温湿度显示电路
3.4 CAN收发器外围电路设计
LPC2292内嵌CAN控制器(完全支持CAN2.0B规范),但必须与CAN收发器连接才能具备收发功能。本电路采用了CAN收发器TJA1050,TJA1050是CAN 协议控制器和物理总线之间的接口。其TXD引脚是其信号发送引脚,本系统中该引脚与LPC2292主控芯片的P0.25_RD1连接;收发器的RXD引脚是其信号接受引脚,本系统中该引脚与LPC2292的TD1引脚相连。CANH和CANL是节点之间构成基于CAN总线通信的互联引脚。VCC接5V正电源,GND接地,如图3-4所示。
本电路中,在CANH和CANL与地之间并联了两个100pF的小电容,可以滤除总线上的高频干扰和一定的防电磁辐射的能力。CANH和CANL之间串联了两个60欧姆的电阻构成分离终端,普通模式信号可以在两个分离终端的中间抽头得到共模信号,理想情况下共模信号就是DC电压信号。这个普通模式信号通过一个4.7µF的电容连接到地。分离终端可以有效减少辐射,使系统有更好的抗干扰性。
TJA1050通过引脚S可以选择两种工作模式:高速模式或静音模式。
高速模式就是普通的工作模式,将引脚S接地可以进入这种模式。如果引脚S没有连接,高速模式就是默认的工作模式。
在静音模式中,发送器是禁 [9]
能的。但IC的其他功能可以继续使用。将S引脚连接到VCC可以进入这个模式。静音模式可以防止在CAN控制器不受控制时对网络通讯造成堵塞。
图3-4 收发器外围电路
3.5 电源模块电路设计
由于LPC2000系列的ARM7微控制器需要使用两组电源,I/O口供电电源为3.3V,内核及片内外设供电电源为1.8V,所以系统设计为3.3V应用系统。首先,由CZ1电源接口输入9V直流电源,二极管D1防止电源反接,经过C1和C4滤波,然后通过LM2575将电源稳压至5V输出,如图3-5所示。再使用LDO芯片(低压差电源芯片)稳压输出3.3V和1.8V电压,如图3-6所示。
LDO芯片采用了SPX1117M3-1.8和SPX1117M3-3.3,其特点是输出电流大,输出电压精度高,稳定性高。SPX1117系列LDO芯片输出电流可达800mA,输出电压的精度在±1%以内,还具有电流限制和热保护功能,广泛应用在手持式仪表、数字家电和工业控制等领域。使用时,其输出端需要一个至少10µF的钽电容来改善瞬态响应和稳定性。
图3-5 5V供电电路——LM2575
图3-6 系统供电电路
3.6 JTAG接口电路设计
JTAG(Joint Test Action Group)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。
JTAG最初是用来对芯片进行测试的,基本原理是在器件内部定义一个TAP(Test Access Port;测试访问口)通过专用的JTAG测试工具对进行内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。现在,JTAG接口还常用于实现ISP(In-System programmable)对FLASH等器件进行编程。
JTAG的编程方式是在线编程,传统生产流程中是先对芯片进行预编程然后再装到板上操作,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。JTAG接口可对PSD芯片内部的所有部件进行编程。
本电路采用ARM公司提出的标准20脚JTAG仿真调试接口,JTAG信号的定义及与LPC2292的连接电路如图3-7所示。图中,JTAG接口上的信号nRST和nTRST与复位电路连接,形成线“与”的关系,达到共同控制系统复位的目的。
根据LPC2292的应用手册说明,在RTCK引脚4.7kΩ的下拉电阻,使系统复位后LPC2292内部的JTAG接口使能,这样就可以直接进行JTAG仿真调试了。
图3-7 JTAG接口电路
3.7 RS-232接口电路设计
在串行通行中,数据字节被拆成一连串"0"或"1"数据位在单根导线上从一端设备传送到另一端设备。接收端设备需要知道发送端以多大传送速率(用波特率表示)传送数据位,以便重新将其组合成字节。通常有两种方法实施传送速率的匹配,一种方法是,另用一根导线从发送端向接收端传送一个时钟信号,此法常用于同步通信中。另一种方法是,通信前,发送端和接收端必须使用双方协商一致的通信协议,其中包括传送速率的规定,此法常用于非同步通信,RS-232通信就采用此法。
由于RS-232电平和TTL电平是不同的两种电平,两者之间必须有一个电平转换电路,这里我采用了专用芯片MAX232进行转换,这里采用了三线制连接串口,即RS-232全双向通讯。一根信号线向一个方向传送数据,一根信号线向相反方向传送数据,另一根导线是信号地线。两端设备可同时传送数据,于是避免了信号交换代码或额外的信号交换导线。这是一种最常用的通信接口方式。也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我来说已经足够使用了,MAX232的第10脚(T2IN)和芯片的第42脚(P0.0_TxD0)连接,第9脚(R2OUT)和芯片的第49脚(P0.1_RxD0)连接。具体电路连接图,如图3-8所示。
图3-8 RS-232接口电路
3.8 系统时钟电路
LPC2000系列ARM7微控制器可以使用外部晶振或外部时钟源,内部PLL电路可调整系统时钟,使系统运行速度更快(CPU最大操作时钟为60MHz)。如果不使用片内PLL功能及ISP下载功能,则外部晶振频率范围是1 ~ 30MHz,外部时钟频率范围是1 ~ 50MHz;若使用片内PLL功能或ISP下载功能,则外部晶振频率范围是10 ~ 25MHz,外部时钟频率范围是10 ~ 25MHz。
本系统中使用了外部11.0592MHz晶振,电路如图3-9所示,用1MΩ电阻R45并接到晶振两端,使系统更容易起振。用11.0592MHz晶振的原因是使串口波特率更精确,同时能够支持LPC2000系列ARM7微控制器芯片内部的PLL功能和ISP功能。
图3-9 系统时钟电路
3.9 系统复位电路设计
由于ARM芯片的高速、低功耗和低工作电压导致其噪声容限较低,对电源的纹波、瞬态响应性能、时钟源的稳定性和电源监控可靠性等诸多方面也提出了更高的要求。本系统复位电路使用了专用微处理器监控芯片SP708S,以提高系统可靠性。由于在进行JTAG仿真时,nRST和nTRST是可由JTAG仿真器控制复位的,所以使用了三态缓冲门74HC125进行驱动,电路如图3-10所示。
在图3-10中,信号nRST连接到LPC2292芯片的复位脚 ,信号nTRST连接到LPC2292芯片内部JTAG接口电路的复位脚 。当复位按键RST按下时,SP708S立即输出复位信号,其引脚 输出低电平,同时让信号nRST和nTRST输出低电平使系统复位。平时SP708S的 输出高电平,74HC125截至,由上拉电阻R3和R4将信号nRST和nTRST上拉为高电平,然后系统可正常运行或进行JTAG仿真调试。
图3-10 系统复位电路
第4章 软件系统设计
4.1 CAN总线通讯程序设计
4.1.1 自收发程序调试
本小节主要介绍在毕业设计过程中,对周立功公司提供的自收发程序的调试过程
以及分析。
1、硬件环境
(1)PC机一台
(2)EASYARM2200 实验板一套
(3)串口线一根
2、软件环境
(1)ADS1.2 集成仿真环境
(2)ZLGCOMView 串口调试软件
3、调试结果
首先,我们通过ZLGCOMView 串口
[9]
调试软件的发送窗口,向PC串口发送符合程序规定格式的数据,如图4.1所示。PC向串口发送的数据一共有17个字节,第1个字节"12"是帧起始(SOF);第2个字节"00"是CAN通道号;第3个字节"88"是CAN帧信息。
CAN帧信息格式: 位偏移 7 6 5 4 3210
功能 FF RTR x x DLC
FF =0标准帧,=1扩展帧;
RTR=0数据帧,=1远程帧;
DLC<=8表示要发送的字节数。
接下来的4个字节是CAN标识符;然后是8个字节的数据;第16个字节是发送命令控制位("00"是正常发送,"01"是单次发送,"02"是自发自收,"03"是单次自发自收);最后1个字节是CRC校验位。
数据通过串口送给主控芯片处理,芯片按照程序设定对数据进行识别,然后将数据通过CAN控制器发送到CAN总线,总线接收到数据以后又将数据反送回控制芯片,芯片对数据进行处理以后,通过串口将数据发送到PC,然后可以在PC机上通过串口调试软件ZLGCOMView的接收窗口将接收到的数据显示出来。如图4-2所示。
图4-1 数据接收到窗口
图4-1中可以清楚的看见这帧信息里面所包含的内容,使用的是芯片的"0"号CAN通道;CAN帧信息为"88",代表是扩展数据帧,数据长度为8个字节;"12345678"为CAN标识符;"1122334455667788"为传输的数据。
图4-2 PC机数据发送窗口
图4-2中,“处理字符串”一栏下面是计算机通过串口向芯片发送的字符串;“串口设置”窗口显示了对串口的一些设置。
4.1.2 主控节点控制程序设计
1、程序功能描述
主控节点是本次设计的核心部分,所有数据都要通过其进行处理。可以说,主控节点就是一个数据中转站。所以,主控节点的程序设计关系到整个系统的效率和稳定。程序开始以后,首先对CAN控制器进行初始化(主要是初始化波特率、CAN通道等),然后程序开始检测总线上是否有数据需要处理、数据格式是否正确。如果没有数据需要处理,则等待直到检测到有需要处理的数据;如果有数据需要处理而且格式正确则将数据的低四个字节缓存到CANRDA寄存器,高四个字节缓存到CANRDB寄存器。之后,芯片将数据发送到串口的U0THR寄存器,最后由U0TSR移位寄存器将数据通过TxD0发送到PC。PC在接收到数据以后,通过一个上位机显示程序将温湿度信息在一个窗口中显示。
2、程序流程图
主控制节点程序流程图如图4-3所示。
图4-3 主控节点程序流程
4.1.3 从CAN控制程序设计
1、 程序功能描述
从CAN主要就是对环境温湿度数据的采集,温湿度传感器将采集到的环境温湿度值传给芯片,芯片将数据存至从CAN节点的CAN控制器的发送寄存器CANTDA和CANTDB,其中低四位存至CANTDA,高四位存至CANTDB。然后,通过程序将数据打包成为符合自己定义的CAN格式的数据,将打包后的程序放至缓冲区等待发送。等待发送的数据在程序的控制下通过CAN收发器TJA1050发送到CAN总线上,然后主控节点在程序控制下将CAN总线上的数据通过TJA1050接收到主控芯片中进行下一步处理。
2、 程序流程图
从CAN节点程序流程图,如图4-4所示。
图4-4 从CAN控制程序流程
4.2 传感器驱动程序设计
1、程序功能描述
程序开始以后首先用一组“启动传输”时序,来表示数据传输的初始化。它包括:当SCK时钟高电平时DATA翻转为低电平,紧接着SCK变为低电平,随后是在SCK时钟高电平时DATA翻转为高电平。启动时序如图4-5所示。
后续命令包含三个地址位(目前只支持“000”),和五个命令位。SHTxx会以下述方式表示已正确地接收到指令:在第8个SCK时钟的下降沿之后,将DATA下拉为低电平(ACK位)。在第9个SCK时钟的下降沿之后,释放DATA(恢复高电平)SHTxx控制命令集如表4-1所示。
图4-5 启动时序表4-1 SHTxx命令集
命令 代码
预留 0000x
温度测量 00011
湿度测量 00101
读状态寄存器 00111
写状态寄存器 00110
预留 0101x-1110x
软复位,复位接口、清空状态寄存器,即清空为默认值 11110
如果与SHTxx通讯中断,可通过通讯复位时序复位串口。当DATA保持高电平时,触发SCK时钟9次或更多。在下一次指令前,发送一个“传输启动”时序。这些时序只复位串口,状态寄存器内容仍然保留。通讯复位时序如图4-6所示。
图4-6 通讯复位时序
SHT10温湿度传感器在测量温度时,具有极好的线性。可由公式(4-1)将数字输出转换为温度值。
(4-1)
其中 和 是温度转换系数,在VDD=+5V时 =-40,测量分辨率为14位时 =0.01, 是从温湿度传感器SHT10中读出的温度数值。
为了补偿湿度传感器的非线性以获取准确数据,见公式(4-2)。
(4-2)
其中 为从传感器读出的湿度的数值, 、 、 是湿度转换系数,在测量分辨率为12位的情况下, =-4, =0.
[9]
0405, =-2.8 。相对湿度对温度的依赖性补偿由于实测温度与测试参考温度的不同,应考虑湿度的温度修正系数。见公式(4-3)。
(4-3)
其中T为测得的温度,在测量分辨率为12位的情况下 =0.01, =0.00008
2、程序流程图
图4-5 传感器驱动程序流程
结论这次的毕业设计,是基于CAN总线协议和ARM7处理器的一个比较完整应用。设计中各个节点之间的通讯采用了CAN总线(目前最有发展前景的现场总线),CAN总线协议不同于传统的RS-232/RS-485协议的一主多从方式,它采用多主方式,而且具有高可靠性、高实时性和高检错率等优于传统总线的特点,现在也越来越多的开始被应用在各个领域。
由于系统设计中需要进行环境数据的采集,这就涉及到传感器的使用。传感器技术是一个国家科技发展的象征,是一个国家综合国力的一种展示。其产业技术含量高、经济效益好、渗透能力强、市场前景广,被国内外公认为很有发展前途的高科技产业。
本系统是一个多节点的环境温湿度的检测系统,采用集成温湿度传感器采集环境数据,然后将数据传输给从节点控制芯片处理,继而将处理后数据通过CAN总线传送给主节点控制芯片处理、显示,从而实现对环境温湿度的实时检测。
作为一个多节点温湿度监测系统,本系统由温湿度采集模块、数据处理模块、节点通讯模块和显示模块,完整的构成了一个监测系统,可以比较准确的监测、显示应用环境的温湿度。
系统的创新点主要就是,节点间的数据采用CAN总线传输。这样既能保证数据传输的实时性,又能保证数据传输的完整性。采用CAN总线理论上可以挂无限的节点,这样就拓宽了总线的实用性和可操作性。而且CAN总线上传输的数据可以根据自己系统的需要自己定义其长度,这样就体现了CAN总线应用的灵活性。
本系统主要是对环境温湿度进行监测,当然也可以加入对环境温湿度的控制,这个就需要更多的外设来共同完成,比如对环境升温、加湿、降温和降湿等。在软件方面就只需要加入相应外设的驱动程序。所以,本系统可以根据实际的需求对其进行功能的扩展,以满足用户更高的需求。
致谢
本次毕业设计能够顺利的完成,与老师的辛勤指导和同学的帮助是分不开的。特别是李众立教授和罗亮老师,在设计中对我进行了全程指导,给了我非常全面细心的技术支持。还有和我同在EDA实验室的同学们也给我提出了许多宝贵的建议,帮助我顺利完成了此次设计。在此,我向对所有指导过我的老师以及给过我帮助的同学表示最真诚的感谢!
参考文献
ROBERT BOSCH. CAN Specification Version 2.0[M]. BOSCH Corporation,1991:4-5.
骆如枋.湿度和湿度传感器及其应用[J].仪表材料与传感器,1991,(12):46-52.
周立功等.ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2005:242-262.
周立功等.ARM嵌入式系统实验教程[M].北京:北京航空航天大学出版社,2005:2-51.
周立功公司.LPC2119/2129/2194/2292/2294使用指南.周立功公司, 2006:1-179.
谷树忠.PROTEL DXP电路设计技术入门与应用(第一版) [M].北京:电子工业出版社,2002.
邬宽明.CAN总线原理和应用系统设计[M].北京:航空航天大学出版社,1996:1-48.
邬宽明.CAN总线设计中的几个问题[J].电子技术应用, 1998,5:9-11.
[9] 吴光彬,胡云安.基于CAN总线局域网的通用多点测温系统[J].自动化与仪表,1999,3,12-15.
[10] 薛昱.用单片机实现远程数据传送[J].计算机应用,2001,27(3):6-8.
[11] 阳宪惠.现场总线技术应用[M] .北京:清华大学出版社,2000:1-234.
[12] 杨文霞.现场总线技术的研究与应用[D].大连:大连理工大学,1999:3-12.
[13] 王毅峰.基于CAN总线的分布式数据采集与控制系统[J].工业控制计算机,2000,5:53-54.
[14] 余济临.基于CAN总线的数字化温度测控网络系统[J].电子技术,2004,8:17-19.
[15] 杨会成.基于串行通信的数据采集系统设计与实现[A].安徽:安徽工程科技学院,2002:1-33.
[16] PHILIPS Semiconductors. TJA1050 Data Sheet. PHILIPS Semiconductors,1999:1-27.
[17] Klaus Janschek and Annerose Braune.Controllers for the CAN bus [J]. Feinwerktechnik & Messtechnik,1998,106(5):344-348.
[18] Wan Jianru;Liu Hongchi;Liu Chunjian. Serial Communication Of Control Signals ForElevator Based On Can Bus [J]. Elevator world,2002,50(6):98-103.
[19] Sauer-Deafness. Release new CAN Bus Compact Control System for Electro Hydraulic Proportional Valves [J]. Mining Mirror,2000,13(3):41-42.
[20] H Boterenbrood. CAN open high-level protocol for CAN-Bus [M]. ViA,2000:1-22.
[9]
Tags:
文章-网友评论:(评论内容只代表网友观点,与本站立场无关!) |
|
|
|
|
-
-
-
-
Copyright © 2006-2033 5Var.Com. All Rights Reserved .
|
|