总线转换控制器设计_第1页
总线转换控制器设计_第2页
总线转换控制器设计_第3页
总线转换控制器设计_第4页
总线转换控制器设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、 第I页USBCANRS232RS485总线转换控制器设计摘 要随着计算机技术的发展,串行总线的应用越来越广泛,为了使各种总线的数据能相互识别,总线转换器应运而生。本设计介绍了USBCANRS232RS485总线转换控制器的设计。首先,对总线转换控制器的现状做了简单综述;然后对4种总线的做了简要的介绍;最后详细介绍了系统的总体设计、各模块的工作原理、硬件的实现、程序流程图及部分程序。本设计主要是实现4种总线数据格式之间的转换,它能自动检测转换数据的格式,然后初始化相应的转换模块,再转换数据格式。在硬件方面,选择了性价比高的W77E532单片机,CAN总线控制器SJA1000,USB控制器CH3

2、75。在软件方面,采用了功能模块化,为以后的升级或者扩展做准备。这个总线转换控制器是为了满足工业需求而设计的,它具有低成本、低功耗、高可靠性等特点,具有广阔的前景。关键词:转换器;USB;CAN;RS232;RS485 辽宁科技大学本科生毕业设计 第32页USB-CAN-RS232-RS485 Bus converter controller designAbstractWith the development of computer technology,Application Serial Bus widespread,In order to make a variety of bus d

3、ata can be of mutual recognition,Bus converters came into being。The design introduced the USB-CAN-RS232-RS485 converter bus controller design。First of all, the conversion of the bus controller of the status quo to do a simple overview;And then four kinds of bus made a brief introduction;Finally, det

4、ailed system design, the module principle, the realization of the hardware, procedures and some procedures flow chart。This design is the realization of four kinds of bus data format conversion between,It can automatically detect the data format conversion, and then initialize the corresponding conve

5、rsion module, and then convert the data format。In terms of hardware, select a cost-effective single-chip W77E532 of, CAN bus controller SJA1000, USB controller CH375。On the software side, the use of a modular function, for future upgrade or expansion to prepare for。The bus converter controller is to

6、 meet the needs of the design industry,It has low-cost, low power consumption, high reliability, etc., will have broad prospects。Keyword: Converter; USB; CAN; RS232; RS485摘 要IAbstractII1 绪论11.1 本设计研究的背景及意义11.2 总线转换器的现状及前景11.3 本设计的主要工作22 USB、CAN、RS232/485介绍32.1 USB简介32.2 CAN总线简介52.3 RS485/RS232简介63 系

7、统硬件设计93.1 硬件设计总体方案93.2 元件的选择及接口电路设计93.2.1 单片机的选择103.2.2 USB控制芯片的选择及其电路设计113.2.3 CAN总线控制芯片的选择及其电路设计133.2.4 RS232电平转换芯片和RS485芯片的选择及其电路设计153.2.5 指示电路设计173.3 电源的设计174 系统软件设计194.1 KEIL C语言介绍194.2 软件设计总体方案194.3 程序设计204.3.1 程序流程图204.3.2 USB的中断服务程序214.3.3 CAN的中断服务程序25结 论29致 谢30参考文献311 绪论1.1 本设计研究的背景及意义随着计算机

8、技术的快速发展,USB的使用已经非常普遍,USB作为一种新的PC机互连协议,使外设到计算机的连接更加高效、便利。这种接口适合于多种设备,不仅具有快速、即插即用、支持热插拔的特点,还能同时连接多达127个设备,解决了如资源冲突、中断请求(IRQs)和直接数据通道(DMAs)等问题。而RS232是单个设备接入计算机时,常采用的一种接入方式,其硬件实现简单, 因此在传统的设备中有很多采用了这种通信方式。但是,RS232有一些缺陷,就出现了一些新的接口标准,RS-485就是其中之一。工业控制系统已成为计算机技术应用领域中最具活力的一个分支,并取得了巨大进步。由于对系统可靠性和灵活性的高要求,工业控制系

9、统的发展主要表现为:控制面向多元化,系统面向分散化,即负载分散、功能分散、危险分散和地域分散。 分散式工业控制系统就是为适应这种需要而发展起来的。这类系统是以微型机为核心,将 5C技术,即COMPUTER(计算机技术)、CONTROL (自动控制技术)、COMMUNICATION(通信技术)、CRT(显示技术)和 CHANGE(转换技术)紧密结合的产物。它在适应范围、可扩展性、可维护性以及抗故障能力等方面,较之分散型仪表控制系统和集中型计算机控制系统都具有明显的优越性。 典型的分散式控制系统由现场设备、接口与计算设备以及通信设备组成。现场总线(FIELDBUS)能同时满足过程控制和制造业自动化

10、的需要,因而现场总线已成为工业数据总线领域中最为活跃的一个领域。现场总线的研究与应用已成为工业数据总线领域的热点。CAN总线就是优秀的现场总线之一1。在许多场合,由于设备处理数据的形式不同,需要将不同的数据格式进行转换,所以各式各样的转换器出现了,但是市面上出现的很多转换器一般都只是两种数据格式之间的转换,在很多场合还是不能适应的,为此本文提供一种多种数据格式转换器的设计方法。1.2 总线转换器的现状及前景随着现场总线在工业控制中的应用,各种协议的总线层出不穷地出现了,为了使得不同协议之间的数据能相互识别,各种总线转换器出现了,各式各样的转换芯片也出现了。CAN232B智能CAN总线转换器是中

11、国国内出现的一款优秀的转换器,这个转换器带有1路CAN接口和一路RS232接口的智能型CAN总线转换器,可进行双向传送。采用该转换器,PC(或其他RS232设备)可以通过RS232接口连接一个标准CAN网络,构建现场总线测试实验室、工业控制、智能楼宇、汽车电子等领域中数据处理、数据采集、数据通讯网络的CAN核心控制单元。FTDI型号推出了许多转换芯片,例如,FM232R是实现USB到串行UART接口的转换,也可转换到同步,异步BIT-BANG接口模式,提供各操作系统下的驱动;FT245R是实现USB转并口的转换芯片。但是,现在所出现的转换器一般都是两种数据格式之间的转换,为了适应数据格式较多场

12、合,多种数据格式间转换的转换器将是未来的一个发展趋势。现场总线将会在工业中应用会越来越多,有很多场合需要这种转换设备,因此,多种数据格式转换器将会有很大的发展空间,一定会在将来的总线转换器中占据主导地位。这样就会使得一些企业扩大生产,给企业带来更多的效益,使更多的人就业,减轻了社会的就业压力,具有一定的经济效益和社会效益。1.3 本设计的主要工作本设计是基于单片机的转换器设计,主要工作集中在以下几个方面:1分析系统的要求,介绍以低成本为核心指导思想的转换器的总体设计方案;2系统硬件设计,主要介绍硬件的选择以及主要的特点,单片机接口电路的设计与实现;3各个模块功能的设计与实现,详细介绍USB模块

13、、CAN总线控制模块以及RS232/485与单片机之间的连接,工作原理,各个模块之间的联系及协作方式;4系统的总体设计及主要的程序流程图;5总结了该转换器的设计,介绍了使用现状及未来的改进和发展方向。2 USB、CAN、RS232/485介绍随着信息技术(Information Technology)的迅速发展,各种总线在工业生产和人们的日常生活中得到了广泛的应用。在工业现场中,现场总线得到了广泛的应用,在日常生活中,USB接口的设备越来越多,这些总线从传输方式上来看都是串行的。下面将串行总线的种类总结如图2.1中:图2.1 串行总线的种类2.1 USB简介通用串行总线(Universal S

14、erial Bus),简称为USB,它是为了解决接口设备的连接方式并使之易于使用而设计的。它是以主机为中心的分层星型总线拓扑结构实现与外设连接,软件比较复杂,对功率要求也比较高,所以在推出后的一段时期内,USB在基于PC的系统中得到了广泛应用。USB有如下优点:1 USB为所有的外设提供了单一的、易于操作的、标准的连接类型,这样一来就简化了USB外设的设计,同时也简化了用户在判断哪个插头对应哪个插槽时的任务,实现了单一的数据通用接口。2 USB支持热插拔(hot plug),也就是说在不关PC的情况下可以安全的插上和断开USB设备,动态的加载驱动程序。其他普通的外围连接标准,如SCSI设备等必

15、须在关掉主机电源的情况下才能增加或移走外围设备。3 USB支持PNP,当插入USB设备的时候,计算机系统检测该外设并且通过自动的加载相关驱动程序来对该设备进行配置,并使其正常工作。4 USB在设备供电方面提供了灵活性。USB直接连接到Hub或者连接到Host的设备可以通过USB电缆供电,也可以通过电池或者其它的电力设备来供电,或使用两种供电方式的组合,并且支持节约能源的挂机和唤醒模式。5 USB提供全速12Mbps的速率和低速1.5Mbps的速率来适应各种不同类型的外设。6 针对不能处理突然发生的非连续传送的设备,如音频和视频设备,USB可以保证其固定带宽。7 为了适应各种不同类型外围设备的要

16、求,USB提供了四种不同的数据传送类型。8 USB使得多个外围设备可以跟主机通信2。USB传送信号和电源是通过一种四线的电缆,USB的电气特性如图2.2所示:图2.2 USB的电气特性USB总线属一种轮讯方式的总线,每一总线执行动作最多传送三个数据包。按照传输前制定好的原则,在每次传送开始时,主机控制器发送一个描述传输运作的种类、方向,USB设备地址和终端号的USB数据包,这个数据包通常称为标志包(token packet)。USB设备从解码后的数据包的适当位置取出属于自己的数据。数据传输方向不是从主机到设备就是从设备到主机。在传输开始时,由标志包来标志数据的传输方向,然后发送端开始发送包含信

17、息的数据包或表明没有数据传送。接收端也要相应发送一个握手的数据包表明是否传送成功。发送端和接收端之间的USB数据传输,在主机和设备的端口之间,可视为一个通道。存在两种类型的通道:流和消息。流的数据不像消息的数据,它没有USB所定义的结构,而且通道与数据带宽、传送服务类型,端口特性有关。多数通道在USB设备设置完成后即存在。USB中有一个特殊的通道缺省控制通道,它属于消息通道,当设备一启动就存在,从而为设备的设置、查询状况和输入控制信息提供一个入口。事务预处理允许对一些数据流的通道进行控制,从而在硬件级上防止了对缓冲区的高估或低估,通过发送不确认握手信号从而阻塞了数据的传输速度。当不确认信号发过

18、后,若总线有空闲,数据传输将再做一次。这种流控制机制允许灵活的任务安排,可使不同性质的流通道同时正常工作,这样多种流通常可在不同间隔进行工作,传送不同大小的数据包。2.2 CAN总线简介控制器局部网(CANCONTROLLER AREA NETWORK)是BOSCH公司为现代汽车应用领先推出的一种多主机局域网,由于其卓越性能,现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器、建筑以及环境控制等众多部门。控制器局部网将在我国迅速普及推广。 CAN通讯协议主要描述设备之间的信息传递方式。CAN层的定义与开放系统互连模型(OSI)一致,每一层与另一设备上相同的那一层通讯。实际的通讯发生在每

19、一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。CAN的规范定义了模型的最下面两层:数据链路层和物理层。表2.1中展示了OSI开放式互连模型的各层。应用层协议可以由CAN用户定义成任何方案。已在工业控制和制造业领域得到广泛应用的标准是DeviceNet,这是为PLC和智能传感器设计的。表2.1 OSI开放系统互连模型层 数层 名主 要 任 务7应用层最高层。用户、软件、网络终端等之间用来进行信息交换。如:DeviceNet6表示层将两个应用不同数据格式的系统信息转化为能共同理解的格式5会话层依靠低层的通信功能来进行数据的有效传递。4传输层两通讯节点之间数据传输控制。操作如:数据重发,

20、数据错误修复3网络层规定了网络连接的建立、维持和拆除的协议。如:路由和寻址2数据链路层规定了在介质上传输的数据位的排列和组织。如:数据校验和帧结构1物理层规定通讯介质的物理特性。如:电气特性和信号交换的解释CAN能够使用多种物理介质,例如双绞线、光纤等。最常用的是双绞线。信号使用差分电压传送,两条信号线被称为“CAN_H”和“CAN_L”,静态时均是2.5V左右,此时状态表示为逻辑“1”,也可以叫做“隐性”。用CAN_H比CAN_L高表示逻辑“0”,称为“显形”,此时,通常电压值为:CAN_H = 3.5V 和CAN_L = 1.5V 。CAN具有十分优越的特点,使人们乐于选择。这些特性包括:

21、1. 低成本;2. 极高的总线利用率;3. 很远的数据传输距离(长达10km);4. 高速的数据传输速率(高达1Mbit/s);5. 可根据报文的ID决定接收或屏蔽该报文;6. 可靠的错误处理和检错机制;7. 发送的信息遭到破坏后,可自动重发;8. 节点在错误严重的情况下具有自动退出总线的功能;9. 报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息;标准CAN的标志符长度是11位,而扩展格式CAN的标志符长度可达29位。CAN 协议的2.0A版本规定CAN控制器必须有一个11位的标志符。同时,在2.0B版本中规定,CAN控制器的标志符长度可以是11位或29位。遵循CAN2.0B

22、协议的CAN控制器可以发送和接收11位标识符的标准格式报文或29位标识符的扩展格式报文。如果禁止CAN2.0B,则CAN 控制器只能发送和接收11位标识符的标准格式报文,而忽略扩展格式的报文结构,但不会出现错误3。2.3 RS485/RS232简介RS232接口就是串口,电脑机箱后方的9芯插座,旁边一般有 |O|O| 样标识。 一般机箱有两个,新机箱有可能只有一个,笔记本电脑有可能没有。有很多工业仪器将它作为标准通信端口,通信的内容与格式一般附在仪器的用户说明书中。计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯。由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条

23、线路特性的不一致而被广泛采用。 在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。RS-232-C接口是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。该标准规定采用一个25个脚的 DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。 (1)接口的信号内容 实际上RS-232-C的25条引线中有许多是很少使用的,在计算机与终端通讯中

24、一般只使用3-9条引线。RS-232-C最常用的9条引线的信号内容如表2.2所示:表2.2 9针串行口的针脚功能针脚功 能针脚功 能1载波检测(DCD)6数据准备好(DSR)2接受数据(RXD)7请求发送(RTS)3发出数据(TXD)8清除发送(CTS)4数据终端准备好(DTR)99 振铃指示(RI)5信号地线(SG)(2)接口的电气特性 在RS-232-C中任何一条信号线的电压均为负逻辑关系。即:逻辑“1”表示515V;逻辑“0”表示+5 +15V。噪声容限为2V,即要求接收器能识别低至+3V的信号作为逻辑“0”,高到-3V的信号 作为逻辑“1” (3)接口的物理结构 RS-232-C接口连

25、接器一般使用型号为DB-25的25芯插头座,通常插头在DCE端,插座在DTE端。一些设备与PC机连接的RS-232-C接口,因为不使用对方的传送控制信号,只需三条接口线,即“发送数据”、“接收数据”和“信号地”。所以采用DB-9的9芯插头座,传输线采用屏蔽双绞线。 (4)传输电缆长度 由RS-232C标准规定在码元畸变小于4%的情况下,传输电缆长度应为50英尺,其实这个4%的码元畸变是很保守的,在实际应用中,约有99%的用户按码元畸变10%20%的范围工作的4。由于RS-232-C接口标准出现较早,难免有不足之处,主要有以下四点: (1)接口的信号电平值较高,易损坏接口电路的芯片,并且与TTL

26、 电平不兼容,故需使用电平转换电路方能与TTL电路连接;(2)传输速率较低,在异步传输时,波特率为20Kbps;(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗干扰性能很弱;(4)传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在50米左右。针对RS-232-C的不足,于是就不断出现了一些新的接口标准,RS-485就是其中之一,它具有以下特点: 1. RS-485的电气特性是:逻辑“1”以两线间的电压差为+2V+6V表示;逻辑“0”以两线间的电压差为2V6V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平

27、与TTL电平兼容,可方便与TTL 电路连接。2. RS-485的数据最高传输速率为10Mbps。3. RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强。4. RS-485接口的最大传输距离标准值为4000英尺,实际上可达 3000米。另外RS-232-C接口在总线上只允许连接1个收发器,即单站能力。而RS-485接口在总线上是允许连接多达128个收发器,即具有多站能力。这样用户可以利用单一的RS-485接口方便地建立起设备网络。因RS-485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。当串行总线要求通信距离为几十米到上千米时,广泛

28、采用RS-485总线标准。RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。3 系统硬件设计3.1 硬件设计总体方案本设计的主要工作是设计一个转换器,能使USB、CAN总线、RS232、RS485这四种总线的数据格式能相互转换。该转换控制器主要由单片机、USB控制器、CAN总线控制器、RS232/485电平转换芯片等几部分组成,总体设计应该是全面考虑总体目标,进行硬件的初步选型,然后确定这个转换器的草案,同时考虑转硬件的可行性。现在常用的单片机内部的数据存储器都是很小的,这个转换器在工作的过程中,有大量的数据需要暂时存放,所以需要加一个数据存储

29、器。在转换的过程中,为了使当前正在转换的数据格式能让用户清楚地知道,所以需要设计状态指示电路。整个系统的硬件结构图如图3.1所示。图3.1 系统的硬件框图3.2 元件的选择及接口电路设计元件的选择是以低成本、高性能为原则的。接口电路的设计包括单片机的数字端口与USB控制芯片、CAN总线控制芯片、RS232/485电平转换芯片的连接以及转换状态指示电路的设计。3.2.1 单片机的选择单片机的选择在整个系统设计中是至关重要的,要满足大内存、高速率的要求。在众多的单片机中,很多都是本系统能使用的,但是在满足系统要求而成本较低的单片机还是不多的。在这个转换器的设计中,需要具人两个串口的单片机,所以本系

30、统中选用当前最为流行的W77E532,它具有如下优点:18位CMOS微控制器; 2每4个时钟周期为一个机器周期的高速结构,最大外部时钟频率为40MHz; 3与标准80C52管脚兼容; 4指令与MCS-51兼容; 54个8位I/O口; 6二个增强型全双工串行口; 73个16位定时/计数器; 812个中断源,2级中断能力; 9片上振荡器及时钟电路;102个64KB,具有ISP功能的Flash EPROM区(APFIash0、APFIash1);114KB辅助Flash EPROM,用于存储装载程序(LDFLASH);1264字节片上非易失性存储器用于存储关键数据;13256字节片内暂存RAM;14

31、片内1 KB外部数据存储器(用MOVX指令访问);15可编程看门狗定时器;16软件复位;172个16位数据指针;W77E532是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU和在系统可编程Flash,使得W77E532为众多嵌入式控制应用系统提供高灵活、超有效的解决方案5。W77E532有几种封装形式,在本文的设计中,采用的是一个40脚的双列直插封装(DIP)芯片,是一个高性能的单片机,因为受到引脚数目的限制,所以有不少引脚具有第二功能,其引脚定义如图3.2所示:图3.2 W77E532引脚图3.2.2 USB控制芯片的选择及

32、其电路设计现在市面上出现的USB控制芯片是相当多的,例如SL11、ISP1160、CH375等。但是SL11的速度较慢而且操作很麻烦;ISP1160的引脚太多,有3个USB接口,在这个转换器的设计中是没有必要的;CH375有它的独特之处,因此在这次设计中,选择了这个转换芯片。CH375是一个USB总线的通用接口芯片,支持USB-HOST主机方式和USB-DEVICE/SLAVE设备方式。在本地端,CH375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上。在USB主机方式下,CH375还提供了串行通讯方式,通过串行输入、串行输

33、出和中断输出与单片机/DSP/MCU/MPU 等相连接。CH375的USB主机方式支持常用的USB 全速设备,外部单片机可以通过CH375按照相应的USB 协议与USB设备通讯。CH375 还内置了处理Mass-Storage海量存储设备的专用通讯协议的固件,外部单片机可以直接以扇区为基本单位读写常用的USB存储设备,CH375 芯片内部集成了PLL 倍频器、主从USB 接口SIE、数据缓冲区、被动并行接口、异步串行接口、命令解释器、控制传输的协议处理器、通用的固件程序等6。CH375的管脚定义如图3.3所示:图3.3 CH375的管脚定义这种USB控制芯片的主要特点是:1全速USB-HOST

34、主机接口,兼容USB V2.0,外围元器件只需要晶体和电容;2全速设备接口,支持动态切换主机与设备方式;3机端点输入和输出缓冲区各64字节,支持常用的12Mbps全速USB设备;4支持USB 设备的控制传输、批量传输、中断传输;5动态检测USB设备的连接和断开,提供设备连接和断开的事件通知;6置控制传输的协议处理器,简化常用的控制传输;7置固件处理海量存储设备的专用通讯协议,支持Bulk-Only传输协议和SCSI、UFI、RBC或等效命令集的USB存储设备;8支持5V电源电压和3.3V电源电压,CH375A芯片还支持低功耗模式。在本次设计中,USB接口的操作过程采用中断方式工作。CH375的

35、数据/地址复用总线与W77E532的P0口相连,读写信号线与单片机的读写信号线相连,单片机的P2.7与CH375的片选信号线相连,CH375的中断请求信号与单片机的外部中断0(INT0)相连。图3.4为CH375与W77E532的连接图。图3.4 CH375与单片机的连接电路图如图3.4所示,在CH375的USB数据端(D+、D)可以直接为USB设备所使用。由于CH375内置了处理Mass-Storage海量存储设备的专用通信协议的固件,数据读写只需要几条指令,而不需要详细了解USB通信协议,这就为设计者节省了不少的编写程序时间。3.2.3 CAN总线控制芯片的选择及其电路设计CAN总线是控制

36、器局域网总线(Controller Area Network)的简称,属于现场总线的范畴,是一种有效支持分布式控制或实时控制的串行通信网络。由于其高性能、高可靠性及独立的设计,而被广泛用于工业现场控制系统中。在这个转换控制器设计中,选用SJA1000作为CAN控制器,其内部结构如图3.5所示:图3.5 SJA1000内部结构如图3.5所示,其功能模块有接口管理逻辑、发送缓冲器、接收FIFO队列、接收过滤器和CAN核心模块。SJA1000是一个独立的控制器,有两种不同的模式,即BasicCAN模式和PeliCAN模式,前者是系统是默认的模式,与PCA82C200兼容;后者支持CAN2 .0B所有

37、的功能。CAN核心模块基于CAN2.0B的协议执行对CAN帧的发送和接收。接口管理逻辑实现与外部单片机的连接。发送缓冲器可以储存一个完整的报文。当单片机开始一个传送时,逻辑管理接口会使CAN核心模块读发送缓冲器中的数据,依据CAN2.0B协议发送数据。当收到一个报文时,CAN核心模块将连续的位转换为标准的数据存放在接收过滤器中,通过验收码寄存器、验收屏蔽寄存器进行过滤处理,将符合标志位要求的数据放入FIFO队列中7。SJA1000是采用双列直插式28脚封装(DIP28),其引脚定义如图3.6图所示:图3.6 SJA1000引脚定义图3.7为SJA1000与W77E532连接的CAN总线接口原理

38、图,SJA1000的地址/数据复用总线与W77E532的P0口相连,读写信号线与单片机的读写信号线相连,单片机的P2.6与SJA1000的片选信号线相连,SJA1000的中断请求信号与单片机的外部中断1(INT1)相连。MODE引脚接高电平时,表示选择Intel模式。图3.7 CAN总线接口原理图 在这个转换器中,只用一个CAN总线接口,所以在上述CAN总线接口原理图中,SJA1000的TX1脚悬空,RX1引脚电位必须为0.5Vcc,否则不能形成CAN协议所要求的电平逻辑。为了提高总线的驱动能力,在SJA1000与CAN总线之间加PCA82C250总线驱动芯片。3.2.4 RS232电平转换芯

39、片和RS485芯片的选择及其电路设计RS232中任何一条信号线的电压均为负逻辑关系。即:逻辑“1”表示515V;逻辑“0”表示+5+15V;与TTL电平是不兼容,为此,要选择一种电平转换芯片,使RS232的电平得以转换成TTL电平。MAX232是美国美信公司推出了一款优秀的的电平转换芯片,其引脚图如图3.8所示:图3.8 MAX232A引脚图要使MAX232A正常工作,它必须外接4个电容。芯片的工作电压是5V,要使得它的电压能达到RS232电平电压的要求,这4个电容在这个过程中起了非常重要的作用,这4个电容利用电容的充放电使之达到RS232协议的电平要求8。RS485在接口特性上有了很大的提高

40、,逻辑“1”以两线间的电压差为+2+6V表示;逻辑“0”以两线间的电压差为26V表示;这样就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL 电路连接9。在这个转换器设计中,RS485接口芯片采用美国美信公司的MAX1487,其芯片的引脚定义如图3.9所示。图3.9 MAX1487引脚图图3.10为MAX232和MAX1487与W77E532连接的RS232、RS485总线原理图,W77E532有两个UART口,一个接RS232总线,另一个接RS485总线。这样我们就可以同时使用RS232、RS485总线了。在RS485总线中,常常会在总线上接入120欧姆的反射电阻,在这个转换

41、器的设计中,由于所用的数据线的长度很短,所以在设计中,不用接入这120欧姆的反射电阻。图3.10 RS232、RS485总线原理图3.2.5 指示电路设计为了使用户能清楚地知道当前正在转换的数据格式,设计了指示电路。当一种数据指示灯闪烁,表示这种数据正在被转换;当数据指示灯常亮,表示正在把其它数据转换成指示灯所指示的数据;当数据指示灯处于熄灭状态,表示这种数据不参与转换。图3.11就是指示电路的原理图。图3.11 指示电路原理图在图3.11中,P1.4所接的指示灯表示的是USB工作状态,P1.5所接的指示灯表示的是CAN总线工作状态,P1.6所接的指示灯表示的是RS232工作状态,P1.7所接

42、的指示灯表示的是RS485工作状态。每个LED都串联了一个限流电阻,发光二极管的压降是1.5V1.7V,通过的电流是10mA,所以限流电阻的大小为,其计算过程见式(3.1)。 (3.1)3.3 电源的设计电源在一个用电设备中的作用就是为电路提供能量,它的好坏直接影响到整个电路的性能,从某种意义上来说,一个好的电源可以使整个系统的故障减少到一半,因此,电源的设计在电路设计中是至关重要的。 在本设计中,不采用电池供电,一般的电池的容量不是很大,如果采用电池供电,在运行的过程中可能使这个转换器不能正常工作。因此,用220V的交流供电。所选用的芯片的工作电压都是+5V,为此,只用设计一个+5V的电源就

43、可以了,其结构如图3.12所示:图3.12 电源结构图 由SJA1000的手册可知,在正常工作时,其功耗为5V*15mA=75mW; 由CH375的手册可知,在正常工作时,其功耗为5V*30mA=150mW; 由MAX232的手册可知,在正常工作时,其功耗为696mW; 由MAX1487的手册可知,在正常工作时,其功耗为727mW;由W77E532的手册可知,它的最大功耗为5V*30mA=150mW;这五个芯片的总的功耗为1798mW,系统中其它芯片和电路的总的功耗大约为2W,再留一定的余量,所以,电源的功率大约为5W,应选择功率为5W的变压器。在图3.12中,降压部分采用220V/10V的变

44、压器,得到了10V的交流电,经过桥式整流电路后,得到的电压将是9V,其计算过程见式(3.2)。 V (3.2)再经过集成稳压器7805稳压后,便得到系统所需要的+5V直流电源10。这个电源的原理图如图3.13所示:图3.13 电源原理图4 系统软件设计上一章介绍了各个模块的工作原理及硬件的实现,本章介绍系统的软件设计。4.1 KEIL C语言介绍C语言是一种通用的计算机程序设计语言,在国际上十分流行,它即可用来编写计算机的系统程序,也可用来编写一般的应用程序。以前的计算机系统软件主要是用汇编语言编写,单片机应用系统也是如此。由于汇编语言程序可读性和可移植性都很差,采用汇编语言编写单片机应用程序

45、不但周期长,而且调试和排错也比较困难。为了提高编写单片机应用程序的效率,改善程序的可读性和可移植性,采用高级语言无疑是一种最好的选择。C语言既具有一般高级语言的特点,又能直接对计算机硬件进行操作,表达和运算能力也很强,许多以前只能采用汇编语言来解决的问题现在都可以用C语言来解决。德国Keil Software公司多年来致力于单片机C语言编译器的研究,并在这方面取得了相当大的成功。该公司开发的Keil C51是一种专为8051单片机设计的高效率C语言编译器,符合ANSI标准,生成的程序代码运算速度极高,所需用的存储器空间极小,完全可以和汇编语言相媲美。Keil C51是美国Keil Softwa

46、re公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语一言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势11。4.2 软件设计总体方案软件总体分为3个部分,即初始化程序(包括USB控制器、CAN总线控制器、单片机等初始化程序)、主程序、中断程序(包括US

47、B、CAN总线两个中断)。下面分别叙述:1初始化程序是整个程序正常运行的前提和保证。上电复位后,首先将单片机初始化,然后检测是哪些数据转换,当单片机检测到转换的数据格式后,初始化相应的转换模块。2当初始化完成后,系统运行的就是主程序。主程序就是把从模块中得到的数据转换成相应的数据格式。3USB数据、CAN总线数据向单片机传送数据时,采用的是中断传送方式,这就需要处理相应的中断。4.3 程序设计4.3.1 程序流程图硬件要在软件的配合下才能完成预先要实现的各种功能。这个转换器在使用的过程中,用户把需要转换的数据的数据线插到相应的接口中时,系统将自动检测是哪些数据之间转换,从而初始化相应的转换模块

48、,然后转换该数据,当转换完了之后,使整个系统处于低功耗状态,所以主程序流程图如图4.1所示。图4.1 主程序流程图当转转换器中的RS232、RS485通信时,需要设定波特率;利用定时器1给串行口提供通信时的波特率为1200,定时器1工作在方式2,在晶振频率为11.0592MHz下,TH1=0xe8,TL1=0xe8;串行口0、串行口1都工作在方式1,PCON寄存器的SMOD位为0。单片机的初始化程序如下:void mcu_initial() SCON=0x50; /串行口0工作在方式1 SCON1=0x50; /串行口1工作在方式1 PCON=0x00; TMOD=0x20; /定时器1工作在

49、方式2TH1=0xe8; /定时器1提供波特率1200,晶振为11.0592MHzTL1=0xe8;TR1=1; /启动定时器1/*中断允许控制器*/ EA=1; /CPU开/关中断 EX0=1; /外部中断0的中断允许,USB中断 EX1=1; /外部中断1的中断允许,CAN中断 ES0=1; /串行口0中断允许,RS232中断 ES1=1; /串行口1中断允许,RS485中断 4.3.2 USB的中断服务程序W77E532内部具有定时/计数器,串行口中断,外部中断等中断源。在这个设计中,RS232、RS485是利用串行口中断实现的;USB控制芯片CH375的中断请求信号与外部中断0相连;C

50、AN总线控制器SJA1000的中断请求信号与外部中断1相连。下面详细介绍USB、CAN的中断服务程序。应用CH375时,需要用到许多命令。DISK_RD_GO命令使CH375继续执行USB数据的读操作。在单片机发出DISK_READ命令后,每当CH375从USB存储设备中读完64个字节的数据就会请求中断,单片机获取中断状态USB_INT_DISK_READ,然后单片机应该发出RD_USB_DATA命令取走64个字节的数据,再发出DISK_RD_GO命令使CH375继续读;CH375再次从USB存储设备中读 64 个字节的数据并再次请求中断,单片机再次取走数据并再次让CH375继续读;直到所有数

51、据完全读出,CH375会最后一次请求中断,单片机获取中断状态作为整个读操作的状态,如果操作成功则状态是USB_INT_SUCCESS,否则可能是USB_INT_DISK_ERR。DISK_WR_GO命令使 CH375 继续执行USB存储设备的写操作。在单片机发出 DISK_WRITE命令后,CH375很快就会请求中断,单片机获取中断状态USB_INT_DISK_WRITE,然后单片机应该发出WR_USB_DATA7命令提供64个字节的图4.2 USB读写数据程序流程图数据,再发出DISK_WR_GO命令使CH375继续写;每当CH375向USB存储设备写完 64个字节的数据后就会请求中断,单片

52、机再次提供数据并再次让CH375继续写,直到所有数据完全写入,CH375会最后一次请求中断,单片机获取中断状态作为整个写操作的状态,如果操作成功则状态是USB_INT_SUCCESS,否则可能是USB_INT_DISK_ERR12。根据以上的说明便可得到如图4.2所示的程序流程图。下面给出CH375的初始化程序,根据上一章所讲的硬件设计电路图可知,CH375 只需要占用两个地址:地址0001H用于写命令,地址0000H 用于读写数据。/*CH375初始化*/#include #define CH375I XBYTE0x0001 /定义CH375命令口地址#define CH375D XBYTE

53、0x0000 /定义CH375数据口地址void CH375_WR_CMD_PORT(uchar cmd) /向CH375的命令端口写入命令 CH375_SET_OUT; CH375_CS_ON; CH375_CMD_PORT; CH375_RD_OFF; CH375_OUT=cmd; CH375_WR_ON; _NOP();_NOP(); CH375_WR_OFF; CH375_CS_OFF; void CH375_WR_DAT_PORT(uchar dat) / 向CH375的数据端口写入数据 CH375_SET_OUT; CH375_CS_ON; CH375_DATA_PORT; CH3

54、75_RD_OFF; CH375_OUT = dat; CH375_WR_ON; _NOP();_NOP();_NOP();_NOP();_NOP();_NOP(); CH375_WR_OFF; CH375_CS_OFF; uchar CH375_RD_DAT_PORT(void) /从CH375的数据端口读出数据 uchar tmp; tmp=0; CH375_SET_IN; CH375_CS_ON; CH375_DATA_PORT; CH375_WR_OFF; CH375_RD_ON; _NOP();_NOP();_NOP(); tmp=CH375_IN; CH375_RD_OFF; CH375_CS_OFF; retu

温馨提示

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

最新文档

评论

0/150

提交评论