时间:2023-03-10 14:47:48
序论:好文章的创作是一个不断探索和完善的过程,我们为您推荐十篇接口设计论文范例,希望它们能助您一臂之力,提升您的阅读品质,带来更深刻的阅读感受。
ISA总线:(IndustryStandardArchitecture:工业标准体系结构)是IBM公司为PC/AT电脑而制定的总线标准,也称为AT标准,为8/16位体系结构,最高工作频率为8MHz,数据传输率大约是16MB/S,地址线24条,可寻访16M字节地址单元。由于本文使ISA总线工作在8位I/O传输模式,使用了ISA总线信号中的时钟线(ISA_CLK)、地址线(ISA_ADDR):A0~A9、数据线(ISA_DATA):D0~D7、读信号线(ISA_IOR)、写信号线(ISA_IOW)、地址锁存使能(ISA_ALE)、地址选通信号(ISA_AEN)等。本设计采用了与C语言较为相似的VERILOGHDL硬件描述语言对ISA总线逻辑接口进行了描述。
本文要实现的是ISA接口通过FPGA访问串口芯片16C554,16C554是内部带有16字节收发FIFO的通用异步收发器,具有独立的收发控制电路。4路标准的MODEM接口,通过软件可分别设置允许每一路中断。波特率、数据帧格式等也都可由软件编程设置。具体硬件结构如图。由图2可知上位机通过ISA总线对串口芯片16C554串口芯片的访问需要FPGA作为桥接媒介,因此串口芯片的控制信号均由FPGA给出,其逻辑控制信号的VERILOG描述如下。当上位机对串口芯片进行读写时,首先需要通过FPGA将ISA地址信号译码为芯片的片选信号,设置串口芯片基地址为0x300,由于9位地址线的低三位为串口芯片的内部地址,因此芯片的片选信号由地址总线的高七位决定。
3结束语
2信息接口设计
在第2节中,对系统应用的信息接口进行了介绍,并对其功能进行了较为详细的描述,根据其功能和作用位置的不同,可以将其分为信息接收接口、信息交付接口和信息扩展接口3类。
2.1信息接收接口信息接收接口的主要功能是:接收由硬件提交的信息,并对信息的格式进行检验和分类,最终递交给中央处理模块。其主要结构和工作流程如图5所示。如图5所示,在信息接收接口中,收到的信息首先存储在消息缓冲中,信息格式模式匹配单元通过预先定义的合法消息格式,对消息缓冲中的信息进行匹配,监测其合法性,当出现异常时,反馈控制单元调度消息缓冲,根据异常消息的来源,向相应的硬件接口做出反馈,进而将异常消息丢弃或封闭/重置相应的硬件接口。合法的消息被送入消息分类单元,该单元维护若干个列表,列表中存储格式化的消息数据。当中央处理模块或其他模块,调用相应的功能时,则通过相应的功能子接口,将对应的数据取出并交给相应的功能。信息接收接口是基础硬件设施和软件处理单元之间的桥梁,通过扩展消息格式化的适配功能,能够有效拓展支持的硬件种类,从而使得系统的功能更加强大。
2.2信息交付接口信息接收接口面向的是底层硬件设备和系统,而信息交付接口面向的是上层的用户和用户界面,其功能是:将中央处理模块处理完毕的数据和信息,按照不同的种类递交给用户界面,在用户界面中进行集成和显示。其主要结构和工作流程如图6所示。与信息接收接口的不同之处在于,交付接口担负了双向的信息传递功能。首先,通过数据调用单元可以将处理完成的数据交付给用户界面使用,根据类型的不同有图形化数据、字节化数据、GIS数据等,用户界面通过调用这些不同种类的数据,即可按照实际需求,合成和显示出包含丰富内容的导航信息图示。同时,用户通过用户界面对导航信息系统进行控制、设置或调用其需要的单个数据,此时用户指令被传递到用户指令解释单元,若用户指令合法,则通过编译器对指令进行解释,产生针对系统每个模块的具体指令,并通过控制信息产生单元将具体指令转换为系统模块能够识别的具体控制信息。然后利用系统控制接口,对系统的软件和硬件进行直接的控制或设置等操作。信息交付接口是实现用户界面的基础,其并不关心用户界面如何实现,终端用户有着怎样的具体需求,仅仅是提供了一系列标准化的数据交付接口,这样就可以根据不同类型的船舶和不同的应用场景,设计不同的用户界面,而不需要受到核心软件系统的束缚。
2.3信息扩展接口与前2种接口不同,信息扩展接口是向外部开放的接口,通过这个接口,例如卫星通信网、GIS系统、AIS系统等,均可以连接入导航信息系统,为系统提供更加丰富的信息和更加强大的功能。其主要结构和工作流程如图7所示。信息扩展接口同样需要担负数据的双向传递任务,一方面其运行有相应数据交换/传输协议的协议栈,如AIS数据传输协议栈、VSAT卫星通信协议栈等,以便通过相应系统的接口下载和传输消息,同时将接收到的消息转换为系统能够识别的数据结构,供中央处理模块处理。另一方面,系统根据需要,提出相应的信息下载请求,该请求通过请求处理单元,转换为相应系统的控制和请求指令,封装为合适的控制消息后,发送给对应的外部系统。信息扩展接口可以通过扩展外部数据交换协议栈来扩展其可以支持的外部系统种类,从而能够综合更多的外部信息,丰富导航信息系统的内容。
3仿真与实现
根据以上研究和设计,本文采用软件实现的方法对导航信息系统进行仿真和模拟。采用的环境是Corei31.8GHz,4G内存,Win764bit,采用Java作为程序开发语言。仿真的重点在于实现各个接口的功能,验证各个接口工作的有效性和高效性,依托当前较为成熟的中央处理模块[7],实现对信息的处理和存储,并使用Java语言开发整个模拟系统,模拟系统界面如图8所示。通过编写相应的代码,模拟各种硬件设备,信息接收接口成功地收集和转换了不同种类的消息,并通过信息交付接口递交给用户界面,从图8可以看出其成功地实现了信息的收集和显示。如图9所示,进行信息设置的测试,通过设计控制面板,设置相应的参数,观察能否对系统进行有效控制。通过以上实践证明,在理论上本文所设计的接口能够发挥相应的功能,实现导航信息的收集、处理和交付等功能,说明了本文提出的方案具有一定的可行性。
1.2编码器设计编码器的设计相对简单,主要完成对待发送消息字的曼彻斯特编码,并将其并串转换后输出。由于曼彻斯特码每位数据中间均有跳变,故发送时需将每一位分割成两位,分别发送。其工作过程为:(1)同步头编码,若为数据字同步头,则编码为“111000”(由高位到低位,下同),若为状态字或命令字同步头,则编码为“000111”;(2)数据和奇偶校验位编码,若为‘0’,则编码为“10”,若为‘1’,则编码为“01”;(3)按由低到高的顺序将编码后的40位数据串行输出。FPGA采用16MHz主时钟,由于编码后每位数据对应0.5μs,故将主时钟分频后产生2MHz时钟来控制编码器发送40位数据,每个时钟沿发送一位,正好满足1553B总线1Mb/s的速率要求[5]。
1.3解码器设计解码器主要完成消息字的解码,并将其串并转换后输出,其工作过程为:(1)检测到总线上有效电平,解码器开始工作;(2)同步头解码,检测到指令字和状态字同步头用“011”表示,检测到数据字同步头用“100”表示;(3)16位数据位和1位奇偶校验位解码;(4)将解码后的消息字(20位)并行输出。同步头和数据位检测示意如图3所示。由1553B协议可知,同步头包含三个位时,在1.5个位时处有跳变。如图3(a)所示,同步头到来后,解码器连续采集48个数,理论上,采用16MHz时钟,如果检测到24个‘0’和24个‘1’,则表示收到有效同步头,但考虑到信号上升时间及下降时间等因素,实际若检测到22个或者23个‘0’和‘1’,就可以判定同步头有效,进行下一步数据的接收。数据位包含一个位时,在0.5个位时处有跳变。如图3(b)所示,在每个数据中间部位,若前一时钟采样到‘0’,后一时钟采样到‘1’,则表示当前数据位为‘0’,反之则是‘1’。另外,如果采到的数没有跳变,为全‘0’或者全‘1’,则产生错误标志,通知协议处理逻辑或子系统进行相应的错误处理。
2协议处理模块设计
2.1协议处理模块响应流程协议处理模块实现BC,RT,MT三种总线终端的协议处理,在FPGA模块设计之前,根据1553B协议对协议处理模块三种工作模式下的响应流程分别进行分析设计。
2.1.1BC模式[6]BC(总线控制器)是1553B总线的核心,总线上任何类型的数据交换都由它发起。BC模式下接口响应流程设计如图4所示。MIL⁃STD⁃1553B协议规定的总线指令可分发送指令、接收指令和方式指令三种,共能实现四种类型的功能:RT到BC的数据传输、BC到RT的数据传输、RT到RT的数据传输和总线管理。根据图4,BC模式下接口主要工作过程为:(1)根据外部系统需求发送相应命令字,发起总线传输;(2)根据指令类型的不同,进入不同响应流程,主要包括数据字发送、数据字接收和状态字接收等;(3)消息完成后进行消息结束处理,主要包括消息结束标志的产生,差错处理,以及根据收到的RT状态字判断总线终端状态等。需要注意的是,BC如果在规定的时间内没有收到RT状态回复,则需重新发送命令字进行重试(Retry)。
2.1.2RT模式[7]RT(远程终端)是1553B总线上的指令/响应型终端,它响应BC发送的指令,按要求接收或发送数据,在规定时间内回送状态字,并服从BC的总线管理。RT模式下接口响应流程设计如图5所示。根据图5,RT模式下接口主要工作过程为:(1)收到命令字后进行指令分析,根据指令类型进入相应的响应流程;(2)按照流程进行数据字接收、发送,并回复状态字;(3)消息完成后进行消息结束处理,主要包括消息结束标志的产生,差错处理,以及特殊方式指令下方式标志的产生等。
2.1.3MT模式MT(总线监控器)是总线上的监听单元,它监控总线上的信息传输,完成对总线的上原始数据的记录,但它本身不参与总线的通信。MT模式接口的功能较为简单,主要进行指令字、状态字和数据字的接收并将其写入相应缓存中,方便以后提取分析,可通过BC模式或RT模式下接口相应的子模块实现。
2.2协议处理模块FPGA总体设计根据以上三种模式下接口响应流程的分析,对协议处理模块各FPGA子功能模块进行了划分[8],总体设计框图如图6所示。协议处理模块主要由数据接收部分、数据发送部分和数据缓存部分组成,此外还包括超时检测、地址译码及读写控制、中断管理等辅助部分。由于三种模式下某些功能重复,为了提高FPGA资源利用率,设计时充分考虑了相应模块的模式复用,整个协议处理逻辑可在外部模式选择信号的控制下工作在BC,RT和MT模式。16MHz的全局时钟通过时钟管理模块为各FPGA功能模块提供工作时钟,各模块间通过一定的握手信号互联,保证协议处理逻辑有序工作。整个协议处理模块的基本工作原理如下:按照1553B协议规范,通过接收器接收总线上的数据并存入缓存,通过发送器取出缓存中的数据并发送到总线上,同时不断以中断和握手信号与外部系统进行通信,通知外部系统向缓存中写入待发送数据或从缓存中读取已接收数据,并共同完成差错处理和协议逻辑的管理[9]。
3设计仿真与验证
根据设计方案,编写了重要模块的FPGA代码,模拟实现BC功能和RT功能,采用Active⁃HDL软件仿真,其中BC向RT的数据传输仿真结果如图7所示。仿真通过后,在Virtex⁃5FPGA[10]平台上对设计进行了验证,如图8所示。将BC功能模块和RT功能模块的代码经ISE综合、布局布线后分别下载到两块开发板中实现,开发板通过串口与PC机通信。PC机将指令和数据写入FPGA相应寄存器中,BC和RT在PC机指令的控制下进行1553B协议通信。验证过程中通过示波器查看模拟总线的波形,并通过ChipScope观察和比对协议收发数据。同时,为提高接口性能,用光纤代替传统电缆传输介质,采用8B/10B编解码代替曼彻斯特编解码,并利用FP⁃GA内嵌RocketIO内核,进行了传统1553协议数据的光纤传输[11],传输过程数据比对ChipScope采样如图10所示。验证结果表明,BC和RT功能模块能够正常按照1553B协议进行数据的发送和接收,完成基本1553B协议的处理,实现1553B协议数据的1Mb/s电缆传输和3Gb/s以上光纤传输,数据比对无误,说明该接口设计方案实际可行,具备开发应用价值,同时也为光纤1553接口的设计提供了一定参考价值。
NDK通过编程接口与嵌入式操作系统SYS/BIOS以及底层硬件相互隔离。对于NDK而言,SYS/BIOS被抽象成一个操作系统适应层(OSAdaptationLayer),底层硬件被抽象成一个硬件适应层(HardwareAdaptationLay-er),它们的函数库OS.LIB、HAL.LIB成为了NDK与SYS/BIOS以及底层硬件的接口。图4为基于NDK与SYS/BIOS的通信接口软件架构图。由图4可以看出,NDK主要包含NETTOOL.LIB、STACK.LIB、OS.LIB、HAL.LIB、NETCTRL.LIB五个部分。(1)NETTOOL.LIB提供网络服务,包含NDK提供的基于网络服务的所有套接字以及一些用于网络应用开发的附加工具。(2)STACK.LIB是主要的TCP/IP协议栈,提供了顶层(套接字层)至底层(以太网和PPP层)的所有功能。(3)OS.LIB提供与SYS/BIOS操作系统的接口。(4)HAL.LIB提供与底层硬件的接口。(5)NETCTRL.LIB控制TCP/IP协议栈与外界的交互,管理所有网络事件、协调操作系统与硬件驱动,主要包括:①初始化TCP/IP协议栈和底层设备驱动;②启动和维护系统配置(通过配置服务提供者的回调函数);③连接底层设备驱动和安排驱动事件呼叫TCP/IP协议栈;④卸载系统配置和清除底层驱动。对于基于NDK与SYS/BIOS的通信接口的软件架构,其实现主要分为三部分工作:(1)编制底层驱动程序。底层硬件驱动负责向TCP/IP协议栈提供具体的操作接口,用以控制以太网器件的配置和运行,主要包括:初始化驱动环境,包括器件复位、中断使能、存储区数据访问优先级设定、器件枚举和配置等;以太网数据包的接收和发送;监测底层网络器件状态,将事件信息反馈给协议栈;关闭驱动环境,并收回占用的系统资源。(2)在SYS/BIOS操作系统平台上配置和运行NDK的TCP/IP协议栈。CCS5.3提供了配置工具XGCONF来实现图形化界面配置NDK,如图5所示,传输层、网络层、数据链路层分别选用TCP、IP、EMAC协议,并对其作相关必要的配置,主要包括发送/接收窗口大小、IP地址、生存时间等内容的配置。(3)开发用户定制的网络应用程序。本方案中主要是完成接收上位机控制信息和发送结果信息这些操作,采用流式套接字(Socket)来实现。Socket是应用层与TCP/IP协议簇通信的中间软件抽象层,它是一组接口,把复杂的TCP/IP协议簇隐藏在其后面。对于用户来说,一组简单的Socket接口就是全部通信过程,让Socket去组织数据,以符合指定的协议。
本设计中,选取DSP作为服务器,上位机作为客户端。对于DSP端,先初始化一个监听Socket,然后与端口绑定(bind),并对端口进行监听(listen),再调用accept阻塞,等待PC端连接。对于PC端,先初始化一个Sock-et,然后请求连接DSP端(connect),若此时DSP端正处于等待PC端连接状态,则DSP端接受此连接请求,于是,PC端与DSP端就成功建立起了连接。PC端发送数据请求,DSP端接收请求并处理请求,再把回应数据发送给PC端,PC端读取数据,最后关闭连接,一次交互结束。DSP与上位机进行Socket通信的具体过程如图6所示。
2功能测试
为了测试本文设计的千兆以太网接口的可行性,PC端采用VC++的MFC来设计测试程序,测试程序主要实现对单通道正弦信号的采集、处理以及显示等操作,测试界面如图7所示。根据具体的设计需求,测试程序分为数据发送/接收和数据处理/显示这两个部分。其中,数据发送/接收部分通过Socket编程完成与DSP的收发数据包等通信过程,数据处理/显示部分不仅能够支持用户对服务器端参数和控制参数的可配置,而且通过显示接收到的正弦信号时域波形与频谱图,实现对PC端与DSP端通信的直观体验,同时更增加了本接口程序的可移植性与可扩展性。通过测试可以发现,正弦信号的时域波形图与频谱图较为流畅,且稳定性较高,能够支持长时间稳定可靠传输及显示。
2软件设计
数据处理接口模块的软件主要由硬件初始化、自测试程序、周期数据收发和命令响应四大功能组成。其中周期数据的收发包含消息层和数据层两个层次。消息层负责命令的辨识和数据的组织搬运,数据层负责协议的执行和发送接收等底层任务。数据层基本数据帧的格式见图4所示。这里的同步字、数据长度、校验方式由主机在初始化时确定。其中校验方式可选择两种,若采用和校验,则检验位占用1字节;若使用CRC校验,校验位占2字节。在周期数据收发的数据层中,RS422链路分为测控链路和任务链路两部分。测控链路用于检测设备的连通性和硬件的正确性,任务链路用于任务系统之间的通信。因此,将用于测控通信的链路设计为无链接协议链路,将用于任务通信的链路设计为有链接协议链路。有链接协议的任务链路的状态转移图见图5所示。任务链路的工作原理是:上电后首先进行通信测试,主端首先发送LTST,若从端回复ALTST为正常,测试完成后,转入空闲工作状态;空闲状态时主从定期进行握手操作,当主机存在发送命令时,转入消息发送状态,当从端发来数据帧前导码LHDR时主端转入消息接收状态;消息发送完成后会进行发送检查,如果从接收无误会发来ACK握手信号,当出现超时或从发来NACK信号时进行重新发送状态,重试超过门限进入通信测试状态;消息接收状态时若消息正确则进入空闲状态,若接收超时或消息错误时发送NACK通知主端重新发送,当错误次数超门限时进入通信测试状态。
3低功耗设计
简易无人机携带燃料有限,而实际任务中往往又要求其尽可能长时间的滞空,这就要求各类设备尽可能地以较小的功耗完成较多的功能。因此本文从硬件软件等不同层面设计来降低模块的功耗。降低功耗总的来说有关闭无用功能、减少无用操作和合理器件选型三个方法。在不使用DSP内部的AD、eCAN、SCI等资源时,可将对应的资源的时钟HSPCLK和LSPCLK关闭,同时不使能这些资源,以达到降低功耗的目的。作为降压型线性电源,TPS74401芯片的耗散功率PD=(VIN-VOUT)×IOUT,即电源的转换效率取决于输入输出电压差的大小,因此在电源转换电路的设计上应在满足电源芯片的最小dropoutvoltage的情况下尽量减小LDO器件输入输出电压差,可提高转换效率减少发热功耗,本文中1.8V电源由最接近1.8V电压的3.3V电源转换而来。为保持较好的信号完整性,模块上的印制板走线阻抗均按照单端50Ω差分100Ω控制。在RS422的发送端和接收端进行阻抗匹配以优化信号质量。在发送端使用33Ω串联匹配方式,接收端采用120Ω并联匹配方式,由于正常工作时差分电平约±5V,为降低直流功耗在并联匹配电阻处串接一10pF电容,这样既满足瞬态的信号完整性要求,也可在稳态时达到隔离直流,减小匹配电阻上直流功耗的目的。详见图6所示。在软件设计方面,采用定时查询和中断接收相结合的方式,减少DSP对外设的多余操作,避免不必要的轮询操作所产生的功率消耗。本文介绍的串行数据接口板在今后的改进设计中,可以注意合理的器件选型,以达到降低功耗的目的。例如:现设计中1.8V电源转换效率为54%,今后可结合实际电流消耗状况选用合适的开关电源代替线性电源[4],并使开关电源工作在中等或较重负载状态,可提高电源效率至80%左右;现有设计中CPLD动态功耗约为0.7W,由于该模块中逻辑占用资源并不多,因此后期可考虑用更小功耗的中小规模可编程逻辑器件替换。目前现有设计中未考虑模块的睡眠唤醒功能,今后可结合主机实际的需求,添加相应功能的电路,以降低待机功耗。
1引言
在当今的各种实时自动控制和智能化仪器仪表中,人机交互是不可缺少的一部分。一般而言,人机交互是由系统配置的外部设备来完成,但其实现方式有两种:一种是由MCU力口驱动芯片实现,如键盘显示控制芯片SK5279A,串行数据传输数码显示驱动芯片MAX7219等等,这时显然MCU没有LCD的驱动功能。另一种就是MCU本身具有驱动功能,它通过数据总线与控制信号直接采用存储器访问形式或I/O设备访问形式控制键盘和LCD实现人机对话。这里的MCU主要有世界各大单片机生产厂商开发的各种单片机,其中TI公司的MSP430系列因其许多独特的特性引起许多研究人员的特别关注,在国内外的发展应用正逐步走向成熟。
2LCD简介
LCD(LiquidCrystalDisplay),即液晶显示器。液晶显示是通过环境光来显示信息的,它本身并不发光,因而功耗很低,只要求液晶周围有足够的光强。LCD是人与机器沟通的重要界面,早期以显像管(CRT/CathodeRayTube)显示器为主,但随着科技不断进步,各种显示技术如雨后春笋般诞生。LCD由于具有轻薄短小、低耗电量、无辐射危险、平面直角显示以
及影像稳定不闪烁等优势,逐渐占据显示的主流地位。
LCD的类型,根据其分类方式的不同而不同。如根据LCD显示内容的不同可以分为段式LCD和点阵LCD。根据LCD驱动方式的不同可以分为静态驱动和多路驱动。
3MSP430F44X简介
MSP430F44X系列是TI公司最新推出的具有超低功耗特性的Flash型16位RISC指令集单片机[2]。该系列单片机性价比相当高,在系统设计、开发调试及实际应用上都表现出较明显的优势。它主要应用在各种要求极低功率消耗的场合,特别适合用于智能测量仪器、各种医疗器械、智能化家用电器和电池供电便携设备产品之中。
3.1系统结构
MSP430F44X的系统结构,主要包括:CPU、程序存储器(ROM)、数据存储器(RAM)、FLL+时钟系统(片内DCO+晶体振荡器)、看门狗定时器/通用目的定时器(WatchDog)、ADCl2(12位A/D)、比较器A(精确的模拟比较器,常用于斜边(Slope)A/D转换)、复位电压控制/电源电压管理、基本定时器(BasicTimerl)、定时器(Timer-a和Timer-B)、LCD控制器/比较器(多达160段)、硬件乘法器、I/O口和串行口[4]。系列中各种具体的型号稍有差别。在本次设计中,具体选择MSP430F449作为人机接口电路的设计具有许多独到的优势。这一点,读者可以根据TI公司相关的数据手册进行比较。
3.2片内外模块特性
MSP430F44X具有丰富的片内模块,其明显的特点是:具有48条I/0口线的6个并行口P1-P6,其中P1、p2具有中断能力,同时具有2个可用于UART/SPI模式选择的串行口(USART0和USARTl);内含12位的A/D转换器ADCl2,快速执行8×8、8×16、16×16乘法操作并立即得到结果的硬件乘法器;多达160段的LCD控制器/比较器,可以实现多种方式的驱动显示;可以实现UART、PWM、斜坡ADC的16位Timer-A和16位Timer-B;非常灵活的时钟系统,既可用32768Hz的钟表晶振产生低频时钟,也可以用450kHz-8MHz的晶体产生高频时钟,同时还可以使用外部时钟源或者用不同控制频率的DCO;多达几十kB的Flash空间,这样数据既可以保存在片内的Flash信息存储器,也可保存在程序的Hash中的剩余空间。
4接口电路设计
4.1接口电路简图及说明
典型应用电路示意图。在该图中,LCD类型和键盘种类及数目的选择、下拉电阻的数值大小都必须认真考虑,硬件设计要满足一定的工作时序关系,复位时预留缓冲时间和悬空部分引脚,晶振的选择要在适当的数值,必须保证交流驱动的频率在30Hz-1000Hz范围内,其具体的情况请详细参考TI公司的相关资料[3]。
4.2段型液晶显示屏EDS820A简介
一般而言,LCD分为笔段型和点阵字符型及点阵图形型。笔段型主要是显示数字,常用于计数、计量和计时;点阵字符型用于显示数字和西文字符;点阵图形型用于显示图形及字符。本设计中用到的EDS820A就是由西安新敏电子科技有限公司生产的笔段型LCD。是该显示屏的各个引脚的逻辑功能表。
显而易见,该产品EDS820A是5位的液晶显示屏,它只有4个DP,用于显示小数点;COM端也只有一个,所以该LCD与MSP430F449的管脚连接应该引起足够重视.
5软件设计
硬件连接电路图为例,编写了键盘控制及显示程序,程序在IAREmbeddedWorkbench编译通过。全部主程序包括详细的发射和接收子程序,及初始化和等待键盘输入转换、显示等等,值得注意的是发射与接收的控制要适当。
该程序是用汇编编写的。程序实现的是等待按键输入,读取键值,最后进行键值处理和显示的功能。
检测是否有键按下是通过KEY是否有高电平信号。平时,KEY为低电平,当有键按下时为高电平,它发送一个脉冲给单片机MSP430F449,当单片机检测到该信号时,判断按键的功能,从而进行相应的处理。
6人机接口电路在体内电刺激器中的应用
医学上,在进行疾病控制时,通常可以通过电极以一定波形(如方波、正弦波等)、频率、幅度、占空比等电信号对神经或肌肉进行刺激,以使其支配相应的功能或肌肉产生收缩/舒张动作,从而有利于症状的减轻。由于不同部位的神经或肌肉对电刺激发生的敏感水平不同,不同强弱和不同性质的电信号所产生的刺激效果是不一样的。我们研制的体内电刺激器,可以产生手术时所需要的具有不同的频率、幅度、占空比的不同波形信号。该仪器幅度、占空比准确,频率稳定,各参数均可以精确的调节。而且,由于使用了LCD显示,它与单片机的连接简单。LCD具有质量轻、体积小、电压低、功耗小、显示内容丰富等优点,其人机界面相当友好。但人机接口电路设计的优劣直接影响到整台仪器的使用效果。
2个性化的作业
为了让每个学生都有独一无二的作业,将题目和学生的身份信息进行了联系.MATLAB最重要的功能就是对矩阵的操作,在实际学习过程中,让学生将向量和矩阵分开看待的.对于向量的操作,让学生对自己的学号进行操作,并将自己的学号做成各种各样的条形码.通过对条形码的学习,让学生明白了编解码技术、抗噪声技术.当学生看着自己的学号生成的条形码时,他们觉得非常新奇,对MATLAB编程的学习热情得到极大地提高.对于矩阵的学习,主要围绕学生的照片展开.要求学生必须用自己的照片来进行处理.这里存在两个问题:(1)有的学生从网上下载了小动物和风景画之类的图像进行处理,遇到这样的问题,对学生进行批评教育,并降低该次作业的成绩;(2)学生本人的照片大多是用手机拍摄的,因此是彩色图像,一般为jpg格式,需要将彩色图像先转换为灰度图像,在讲到三维阵列的时候,再学习彩色图形的显示和处理.为了便于说明作业的实际情况,举一实例.例如:学习图形用户接口的时候,要求学生设计一个独特的界面.界面的大致轮廓见图1.给出作业的要求如下:(1)设计中的照片务必为本人“头像”,不可以为合影、风景照等;(2)设计报告要求将实现步骤写清楚;(3)报告中要求有程序执行结果截图,截图一定要全面、完整;(4)学号要求一定输入自己的学号;(5)设计完成项目不局限于上页格式,可自由发挥;(6)报告后面要有附录,附录为本设计的代码,字号为小五.本次作业不仅要求学生能够正确设计图1所示的界面,还能够将自己的学号拼成平行四边形或矩形输出,并能够求出学号各位数字的总和,还能够上下和左右翻转设计者的照片.所有结果要求在该接口界面上显示.例如:在文本框中输入“20115044122”,点按“平行四边形格式”,并单击“左右翻转”,得到的结果见图2.在图2的界面中再次单击“左右翻转”,照片翻转结果见图1.本次作业不仅使学生学会了利用MATALB提供的Guide工具进行图形用户接口界面设计,而且学会了将照片导入MATLAB的方法,以及对于三维阵列的操作方法,更能够巩固已经掌握的循环结构程序设计方法.有的学生在本次作业的基础上,进行了进一步的学习和探索,做出了更多更好的设计.
CAN通讯协议描述了在设备之间信息如何传递。它对层的定义与开放系统互连模型(OSI)一致。每一层与另一设备上相同的那一层通讯。实际的通讯是发生在每一设备上相邻的两层,而设备只通过模型物理层的物理介质互连。CAN的结构定义了模型的最下面的两层:数据链路层和物理层。应用层通过不同的新型协议层(专门用于特殊的工业领域加上由个别CAN用户定义的任何合适的方案)和物理层连接。物理层和数据链路层对于设计者来说是透明的,并包含在所有执行CAN协议的部件中。
实际中,许多设备是RS-232接口,为了实现CAN总线数据和RS-232接口设备数据的传输,设计完成了CAN总线与RS-232转换接口电路设计。
1.CAN总线协议分析
1.1CAN总线主要特点
CAN总线是一种多主式的串行通信总线,具有极高的实时性和可靠行,最高通信速率可以达到1Mbit/s,是一种十分优秀的现场工业总线。CAN总线具有如下特点:
结构简单,只有2根线与外部相连,且内部集成错误探测和管理模块。
通信方式灵活。可以多主方式工作,网络上的其他节点发送信息,而不分主从。
可以点对点、点对多点或者全局广播方式发送和接收数据。
网络上的节点信息可分成不同的优先级,以满足不同的实时要求。
CAN总线通信格式采用短帧格式,每帧字节最多为8个,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8字节也不会占用总线时间过长,从而保证了通信的实时性。
采用非破坏性总线仲裁技术。当两个节点同时向总线上发送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传送数据。这大大的节省了总线仲裁冲突的时间,杂网络负载很重的情况下也不会出现网络瘫痪。
直接通信距离最大可达10Km(速率5Kbit/s以下),最高通信速率可达1Mbit/s(此时距离最长为40Km),节点数可达110个,通信介质可以是双绞线、同轴电缆或光导纤维。
CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检测、优先级判别等多项工作。
CAN总线采用CRC进行数据检测并可提供相应的错误处理功能,保证了数据通信的可靠性。
1.2CAN总线协议
CAN总线协议主要描述设备之间的信息传递方式,从结构上可分成3个层次,分别对应OSI网络模型的最低两层数据链路层和物理层。CAN总线协议层次结构由高到低如表1-1所示。
表1-1CAN总线协议层次结构
协议层
对应OSI模型
说明
LLC
数据链路层
逻辑链路控制子层,用于为链路中的数据传输提供上层控制手段
MAC
媒体访问控制子层,用于控制帧结构、仲裁、错误界定等数据传输的具体实现
物理层
物理层
物理层的作用是在不同节点之间根据所有的电气属性进行位的实际传输
LLC层和MAC层也可以看作是CAN总线数据链路层的两个子层。其中LLC层接收MAC层传递的报文,主要完成报文滤波、过载通知以及恢复管理等工作。而MAC层则为数据报文的传输进行具体的控制,包括帧结构控制、总线仲裁、错误检测、出错界定、报文收发控制等工作。
物理层定义了信号是如何实际传输的,因此涉及到位时间、位编码、同步的解释,CAN总线协议并未对物理层部分进行具体的规定。
1.3CAN总线报文传输结构
报文传输由以下4个不同的帧类型所表示
1.数据帧:数据帧携带数据从发送器至接收器。
数据帧由7个不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结尾。数据场的长度可以为0。数据帧(或远程帧)通过帧间空间与前述的各帧分开。
2.远程帧:总线单元发出远程帧,请求发送具有同一识别符的数据帧。
远程帧由6个不同的位场组成:帧起始、仲裁场、控制场、CRC场、应答场、帧末尾。通过发送远程帧,作为某数据接收器的站通过其资源节点对不同的数据传送进行初始化设置。
3.错误帧:任何单元检测到总线错误就发出错误帧。
错误帧由两个不同的场组成。第一个场用作为不同站提供的错误标志(ERRORFLAG)的叠加。第二个场是错误界定符。
为了能正确地终止错误帧,"错误被动"的节点要求总线至少有长度为3个位时间的总线空闲(如果"错误被动"的接收器有本地错误的话)。因此,总线的载荷不应为100%。有两种形式的错误标志,主动错误标志(Activeerrorflag)和被动错误标志(Passiveerrorflag)。
4.过载帧:过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。
过载帧包括两个位场:过载标志和过载界定符。
有两种过载条件都会导致过载标志的传送:
(1)接收器的内部条件(此接收器对于下一数据帧或远程帧需要有一延时)。
(2)间歇场期间检测到一"显性"位。
由过载条件1而引发的过载帧只允许起始于所期望的间歇场的第一个位时间开始。而由过载条件2引发的过载帧应起始于所检测到"显性"位之后的位。
1.4CAN总线错误处理
1.4.1错误检测
有以下5种不同的错误类型(这5种错误不会相互排斥)
1.位错误(BitError)
单元在发送位的同时也对总线进行监视。如果所发送的位值与所监视的位值不相合,则在此位时间里检测到一个位错误。但是在仲裁场(ARBITRATIONFIELD)的填充位流期间或应答间隙(ACKSLOT)发送一"隐性"位的情况是例外的。此时,当监视到一"显性"位时,不会发出位错误。当发送器发送一个被动错误标志但检测到"显性"位时,也不视为位错误。
2.填充错误(StruffError)
如果在使用位填充法进行编码的信息中,出现了第6个连续相同的位电平时,将检测到一个填充错误。
3.CRC错误(CRCError)
CRC序列包括发送器的CRC计算结果。接收器计算CRC的方法与发送器相同。如果计算结果与接收到CRC序列的结果不相符,则检测到一个CRC错误。
4.形式错误(FormError)
当一个固定形式的位场含有1个或多个非法位,则检测到一个形式错误。(备注:接收器的帧末尾最后一位期间的显性位不被当作帧错误)
5.应答错误(AcknowledgmentError)
只要在应答间隙(ACKSLOT)期间所监视的位不为"显性",则发送器会检测到一个应答错误。
1.4.2错误标定
检测到错误条件的站通过发送错误标志指示错误。对于"错误主动"的节点,错误信息为"主动错误标志",对于"错误被动"的节点,错误信息为"被动错误标志"。站检测到无论是位错误、填充错误、形式错误,还是应答错误,这个站会在下一位时发出错误标志信息。只要检测到的错误的条件是CRC错误,错误标志的发送开始于ACK界定符之后的位(其他的错误条件除外)。
2.CAN控制器SJA1000分析
2.1CAN节点结构与SJA1000操作模式
SJA1000独立的CAN控制器有2个不同的操作模式:
BasicCAN模式(和PCA82C200兼容);
PeliCAN模式
BasicCAN模式是上电后默认的操作模式。因此用PCA82C200开发的已有硬件和软件可以直接在SJA1000上使用,而不用作任何修改。
PeliCAN模式是新的操作模式,它能够处理所有CAN2.0B规范的帧类型。而且它还提供一些增强功能,例如,SJA1000支持一些错误分析功能,支持系统诊断、系统维护和系统优化,而且这个模式里也加入了对一般CPU的支持和系统自身测试的功能。使SJA1000能应用于更宽的领域。
本设计采用PeliCAN模式,因此只给出PeliCAN模式增强功能。如表2-1所示。
表2-1PeliCAN模式的增强功能
CAN2.0B(active)
CAN2.0Bactive支持带有29位标识符的网络扩展应用
发送缓冲器
有11位或29位标识符的报文的单报文发送缓冲器
增强的验收滤波器
两个验收滤波器模式支持11位和29位标识符的滤波
可读的错误计数器
支持错误分析在原型阶段和在正常操作期间可用于:诊断、系统维护、系统优化
可编程的出错警告界限
错误代码捕捉寄存器
出错中断
仲裁丢失捕捉中断
支持系统优化包括报文延迟时间的分析
单次发送
使软件命令最小化和允许快速重载发送缓冲器
仅听模式
SJA1000能够作为一个认可的CAN监控器操作,可以分析CAN总线通信或进行自动位速率检测
自测试模式
支持全部CAN节点的功能自测试或在一个系统内的自接收
通常,每个CAN模块能够被分成不同的功能块,如图2-1所示。
CAN控制器执行在CAN规范里规定的完整CAN协议。它通常用于报文缓冲和验收滤波。
通用CAN收发器实现从CAN控制器到CAN总线物理层的电气连接。
而所有这些CAN功能都由一个模块控制器控制,它负责执行应用层的功能。
元器件清单
表3-3CAN总线与RS-2232接口电路设计元气件清单
序号
元件名称
数量(个)
单价(元)
总价(元)
1
AT89C51
1
7.50
7.50
2
SJA1000
1
25.00
25.00
3
HM6116
1
1.00
1.00
4
MAX232
1
5.00
5.00
5
74HC373
1
1.00
1.00
6
PCA82C250
1
6.50
6.50
7
X25045
1
1.00
1.00
8
TLP113
2
3.00
6.00
合计
53.00
结论
本设计完成了CAN总线与RS-232转换接口设计。由于CAN总线与RS-232接口数据通信速率以及通信帧格式都不同,本设计最大优点是解决了这两点不同,实现了数据在CAN总线与RS-232接口之间的传输。且设计中由于使用了CAN总线进行数据传输这就使得通信方式多主性。网络上任意节点可以任意时刻主动地向网络上其他节点发送信息而不分主从。可以点对点,点对多点或全局广播方式发送和接收数据。
由于CAN总线标准没有定义应用层,数据链路层提供与信息内容相应的寻址能力,消息的内容完全由应用解释。且CAN总线的每个数据帧最多只能承载8个字节的数据,因而只适应提供短的变量服务。许多功能还需要扩展。
综上所述,通过此次设计,我们感受到CAN总线带来的各种便利。而且,由于CAN总线具有结构简单、实时性极高、可靠性强且本身具有强大的纠错能力。使得它在当今自动控制领域中的应用极为广泛。由于CAN协议参考OSI开放系统互联模型,可由用户定义应用层协议,通过相关的CAN转接设备,将CAN与计算机相连,利用CAN232B转换器组建一个CAN控制网络,能够很方便的实现RS-232多点组网、远程通讯,并且,不需要更改原有RS-232通讯软件,用户可直接嵌入原有的应用领域,使系统设计达到更先进的水平。
摘要............................................................................................................Ι
ABSTRACT..................................................................................................................................ΙΙ
引言1
1.CAN总线协议分析2
1.1CAN总线主要特点2
1.2CAN总线协议2
1.3CAN总线报文传输结构3
1.4CAN总线错误处理3
1.4.1错误检测3
1.4.2错误标定4
2.CAN控制器SJA1000分析5
2.1CAN节点结构与SJA1000操作模式5
2.2SJA1000内部结构及其功能分析6
3.CAN总线与RS-232转换接口电路设计11
3.1CAN总线与RS-232转换接口电路总体设计11
3.2主控制模块电路设计12
3.2.1AT89C51与6116电路设计13
3.2.2看门狗电路设计14
3.3AT89C51与RS-232转换接口电路设计16
3.3.1RS-232-C标准分析16
3.3.2RS-232与AT89C51接口电路设计18
3.4SJA1000与AT89C51接口电路设计19
3.4.1SJA1000与AT89C51接口电路设计19
3.4.2物理层接口电路设计21
3.5元器件清单22
引言
USB接口(UniversalSerialBus)是一种通用的高速串行接口。它最主要的特点是它的高速传输特性。USB1.1理论速度极限可以达到12Mb/s,USB2.0可达到480Mb/s。这样,它可以很好解决大数据量的数据在嵌入式系统与PC机之间的互传问题;同时,它支持热插拔,并且最多同时支持127个外设,非常适合嵌入式系统的应用。
本次设计是在一个已有的DSP图像采集嵌入式系统的基础上,为它配接上一个USB1.1的接口,以达到DSP图像采集系统高速地将图像数据回传到PC机中的目的。设计的要求主要有:
①在原有平台提供的接口基础上,加入一个低成本、高速度的USB接口;
②通过USB接口,实现PC机对DSP图像采集系统的操作与控制;
③实现图像数据在DSP摄像系统与PC机之间高速的双向传输。
基于以上几点可以看出,本方案最主要的特点是成本低廉且传输速度高。
1硬件方案选择与设计
1.1方案选择
对于基于DSP平台的USB接口设计,经过综合考虑了几种方案之后决定,采用一个不带MCU内核的USB接口芯片PDIUSBD12(成本非常低,一片PDIUSBD12的价格仅为20元),再加上简单的电路和时序调整电路。
这种芯片仅仅完成USB底层的数据链路级交换,并提供给本地微控制器一个并行的接口,但是它并不完成协议层的工作。协议层的工作需要对微控制器编程,控制USB接口芯片来实现USB协议。所以,开发难度相对来说大一些,要做的编程工作也多一点。但是这套方案的成本非常低,而且由于直接用DSP作为微控制器,没有原单片机的瓶颈限制,所以可以实现很高的数据传输速率。该系统的原理框图如图1所示。
由于PDIUSBD12的并行接口时序较慢,只能达到2MB/s。这个速度相对于DSP来说比较低,而且有些地方不是简单地在程序中加入延时就可以调整,所以需要一个时序调整电路来完成它们之间的配合。
图2TMS320C2XX写时序
1.2PDIUSBD12芯片
PDIUSBD12芯片是由Philips公司推出的一种USB1.1接口芯片。它可以工作在5V或者3.3V的工作电压下;具有8位数据总线,且有完全自治的DMA传输操作。它还具有可控制的软件连接(SoftConnect)功能,可以保证在微控制器可靠完成初始化之后再连接上USB总线。另外,它还有一个LED驱动脚,可以外接LED来监测USB的枚举过程和数据传输过程。当USB接口枚举完成,并且成功配置以后,LED将会一直点亮;而在枚举过程以及USB数据通信过程中,LED只是有节奏地闪烁。
PDIUSBD12只占用微控制器的两个地址资源。也就是说,它只有一根地址线。其中一个地址用来向芯片中写命令,另外一个地址用来向燕片中写数据或者从芯片中读取数据。
PDIUSBD12一共有三组端点:端点0完成控制传输;端点1可以配置成中断传输;端点2是主要的数据传输端点。它有64B的缓冲区,如果加上它的双缓冲机制,就有128B的缓冲区;它可以配置成批量传输模式,或者同步传输模式。
总的来说,PDIUSBD12是一款性能优异,价格相对软低的USB接口芯片。
1.3时序芯片
为了降低成本、简化电路,本方案不使用DMA传输方式,而以TI公司的TMS320C2XX作为微控制器(使用20MHz晶振)。它的并口速度非常高,远远高于PDIUSBD12所要求的最高限制2MB/s。此处是硬件设计最关键的地方。
经过详细的时序分析发现,大部分问题可以通过在DSP固件设计的加入延时,或者设置DSP的WSGR寄存器来解决。但是有一个问题,必须在硬件上加以解决。图2是DSP(TMS320C2XX)的写时序。
图3PDIUSBD12写时序
图2中,参数th(W-D)是指在WE信号变高(无效)以后,所写的数据将仍然保持有效的时间。这个值最小为3ns,最大为14ns,所以所写的数据在WE信号无效以后还会维持有效,大约3~14ns(实际的延时介于这两个值之间)。
图3是PDIUSBD12所要求的写时序。图中,参量tWDH是与DSP(TMS320C2XX)参量th(W-D)相对应的另外一个参量。这个参量反映了PDIUSBD12要求微控制器在向其中写数据时,所写的数据在WR信号无效之后,要继续保持有效的时间。这个参量最小值为10ns。也就是说,PDIUSBD12要求所写的数据最少要保持有效10ns(在WR无效之后)。
由此可以看出,DSP(TMS320C2XX)的写时序不能可靠地保证满足PDIUSBD12的要求,而且这个问题无法通过软件加延时的方法来解决,必须通过硬件来处理。经过分析对比,最后决定采用一个很简单但是后来事实证明非常有效的方法来调整它们之间的时序。那就是在DSP(TMS320C2XX)与PDIUSBD12的总线之间加一个双向缓冲器-74LS245。这个芯片可以在它们的时序之间引入一个延时。虽然这个延时并不可靠、但是由于DSP(TMS320C2XX)本身会在WR无效后,继续保持数据有效一段时间(前面已讲过),这要仅仅需要将延时适当延长一点就可以了。74LS245所造成的延时典型值为15ns,最小也为8ns。这样,加上原来DSP写时序的延时,就可以满足PDIUSBD12所要求的写时序了。
另外由于加入74LS245所造成的对其它接口时序的影响,可以通过设置DSP(TMS320C2XX)的WSGR寄存器来消除,所以这个方案是可行的。(事实上,后来制造好的电路也证明了这个方案是完全可行的)
对其余时序上的配合,经过仔细的计算与核对证明,也是完全可行的。在硬件上,哂方案还采用了一片GAL(16V8)来实现对PDIUSBD12芯片的片选,以及实现对它的软件和手动复位。硬件总体框图如图4所示。
2软件设计
2.1固件设计
由于采用的是不带MCU内核的USB接口芯片,所以关于USB1.1协议规范的实现都必须靠DSP(TMS320C2XX)控制PDIUSBD12芯片来完成。固件的主要设计任务是:在DSP(TMS320C2XX)的平台上编写程序,以完成USB1.1规范所要求的标准请求及用户根据产品需要自己定义的请求。
为了不影响程序的执行效率,本方案采用中断方式完成固件的编写;同时,为了保证程序的模块化及良好的可移植性,在设计中采用分层结构进行固件的编写,如图5所示。
最下层是硬件接口层,完成硬件上PDIUSBD12与DSP(TMS320C2XX)的对接。主要是DSP(TMS320C2XX)向PDIUSBD12中写入数据或者命令,以及从中读取数据。
中间层主要有两个模块,用来完成PDIUSBD12的命令接口和中断处理子程序。命令接口是指按照PDIUSBD12的命令格式,完成DSP对它的控制。它的基本命令格式是:DSP先向其中的命令地址写入某一条命令,接着从它的数据地址写入或者读出一系列的数据。中断处理子程序是判断中断的产生源,然后跳转到相应的处理子程序。这些子程序不做过多的处理,而仅仅是将命令数据读出然后置标志位,或者是将某些数据送出。
最上层是主循环程序,以及对于USB1.1标准协议请求(这些请求主要是在USB1.1协议规范的第九章中定义的)和用户自定义请求的处理程序。主循环的主要工作是检查标志位。如果标志位被置位,则调用处理子程序,判断是标准请求还是用户自定义请求,然后调用相应的处理程序加以处理,完成请求。
这样分层的好处是:主循环程序在检查标志位以外的时间可以进行其它工作,提高固件的运行效率。
编程过程中,由于涉及了一些严格的接口时序配合问题,所以,整个固件的编写工作全部采用DSP(TMS320C2XX)的汇编语言;用的是CC2000编程开发工具。
2.2PC机软件的设计
PC机的驱动程序由Philips公司提供。然后,用VC++6.0,通过调用API函数,编写PC的应用程序。这样即可实现PC机对DSP(TMS320C2XX)摄像系统的摄像控制以及图像的传输。
主要使用的API函数是DeviceIOControl()、ReadFile()、WriteFile()。其中DeviceIOControl()用于PC(主机)向DSP图像采集系统发送请求;ReadFile()和WriteFile()分别用于从图像采集系统中读出数据以及向图像采集系统中写入数据。
在设计过程中必须注意的问题是:由于USB接口是主-从方式的接口,它的一切传输过程都必须通过主机向外设发送请求后才可以开始,所以在使用ReadFile()、WriteFile()读写数据之前,必须先通过DeviceIOControl()向图像采集系统发送请求。
智能家庭要求家用电器经网络(总线)实现互联、互操,总线协议是其精髓所在。目前,国际上占主导地位的家庭网络标准有:美国的X10[1]、消费总线(CEBus)[2]、日本的家庭总线(HOMEBUS)[3]、欧洲的安装总线(EIB)[4]。
消费总线使用五种类型的介质(电力线、无线、红外、双绞线和同轴电缆),其中以电力线的应用最为广泛。消费总线得到IBM、Hownywell、Microsoft、Intellon、Lucent、Philips、Siements等大公司的支持,1992年成为美国电力工业协会的标准(EIA600、EIA721)。1997年,EIA600成为美国ANSI标准;2000年6月,微软和CEBus委员会共同宣布支持CEBus的简单控制协议SCP。SCP是未来微中UPNP协议的子集。
1CEBus电力线物理层
鉴于家庭中电力线载波通讯的特殊性,CEBus采用价格低廉、简单易行的线性调频(chirp)扩频调制技术。摒弃了传统电力线载波通常应用的直接序列扩频、调频扩频、跳时扩频等设备复杂、价格昂贵的扩频调制技术。
图2通用通讯模块的原理图
消费总线的物理层有四种码,分别是:“0”、“1”、“EOF”和“EOP”。均为扫频信号,正弦信号载波,从203kHz经过19个周期线性地变为400kHz,再经过1个周期变为100kHz,然后在5个周期中变为203kHz,整个过程用时100μs,也就是1个UST(Unitsymbletime,在消费总线中用多少个UST来度量时间)。其波形如图1所示。
chirps扫频载波需经过放大耦合到电力线上,放大后的幅度应适中。幅度太低,给接收电路带来困难;幅度太大,又会对电力线上的设备产生干扰。CEBus的规定如表1[5]所示。
表1不同条件下的载波幅度值
设备工作电压最小幅值最大幅值负载范围
~120V2.5Vpp7Vpp10Ω~2kΩ
~240V5Vpp14Vpp39Ω~8.2kΩ
表2不同条件下的设备输入阻抗值
设备工作电压设备输入阻抗(在频率20kHz~50000kHz)载波幅值
~120V>150Ω6Vpp
~240V>300Ω12Vpp
同时也规定了电器设备对信号的阻抗。如果阻抗很小,就会将信号吸收从而无法传送国。规定如表2[5]所示。
线性调频技术实现宽带低功率密度传输,从而大大提高抗干扰性能和传输距离。同时,chirps具有很强的自相关性和自同步性。这种自相关决定了所有连接在网络上的设备可以同时识别从网上任意设备发出的这种特殊波形。
2通讯模块的设计
根据P89C51RD2和P300的芯片手册[6][7],设计的通用通讯模块的原理图如图2所示。P89C51RD2和P300之间采用SPI接口通讯,用模拟的I2C总线和串行EEPROM通讯。这样,中断口、串口和有足够的I/O口可以用于实际设备的设计。
3通讯模块电力线接口电路的设计
从P300输出的信号幅度小、驱动能力弱而且还有高次谐波,因此必须经过滤波和放大,然后才能通过耦合电路将信号调制到电力线上。耦合电路将高压和低压隔离开,防止高压击穿通讯电路。另一方面,从电力线来的载波信号又要由P300接收,而电力线上的干扰很大也很不确定,所以需要一个带通滤波器,通过100kHz~400kHz之间的信号,再送到P300的接收端。电路的方框图如图3所示。
其中左边的3根线来自P300,TS是数字信号,控制收发转换。实际上P300的收发类似半双工方式,因为当它在“发送”劣态的时候,实际上并没有输出信号。因此,这个时候它可以处于接收状态,如果接收到了优态,就表示发生了竞争。
3.1滤波电路
输入滤波器电路如图4所示。
这个滤波器有6阶,对高频干扰有很好的抑制,图5是它的频率响应曲线。在高频段400kHz处衰减为3dB。高于400kHz的平均衰减为3dB,高于400kHz的平均衰减为128dB/dec,可以有效地过滤干扰信号。
P300输出的信号包含丰富的高次谐波,为了减小对电网的干扰,先经过带通滤波器再进行放大。滤波器也采用无源电路,原理与上面类似,这里不再多述。
3.2放大电路
P300的输出信号经过滤波之后,其内阻很大,没有驱动能力,而且电压幅度不符合消费总线的要求,必须放大后才能够驱动电力线。放大电路不仅要有强有力的输出能力,还需有禁止输出功能,这样才能使P300接收其它节点发出信号。
电网的性能不确定,有时是容性负载,有时是感性负载。这样就给末级电路采用反馈带来很大困难。因为当负载的阻抗特性变化时,输出的信号相位会发生变化,最终有可能是负反馈变成了正反馈,从而引起振荡。
图6电力载波放大电路
设计的电力载波放大电路如图6所示,虚线的左边的原理图,右边是实现电路图。可以看出,这个电路有两个输入,一个输出。输入信号来自P300的电力载波,输出使能控制放大器运行。图6的左半部分,T1和T2接成互补式OTL输出,它们的偏置电压来自电阻R1、R2的分压。来自P300的信号经过运放U1放大达到期望的幅度,然后通过电容耦合到T1和T2的基极。如果开关S1和S2合上,则T1和T2正常输出电信,P300可以发送数据;如果S1和S2都断开,那么T1和T2的基极都处于悬空状态,输出端也成为悬浮状态,从而不会吸收由电力线传来的信号,P300可以接收信号。
在图6的右边,开关S1和S2也被T7和T8取代,T1和T2被复合管取代,其中的电阻R11用来消除三极管漏电电流的影响。采用复合管是为提高放大倍数,这样可以尽量减小级间耦合,即使输出信号发生了畸变,也不会影响到前级而发生振荡。实际证明这种做法是很可行的。其对容性负载、感性负载以及纯电阻的负载都有较稳定的输出,输出阻抗小于2Ω。
图7P300与电力线的耦合电路
3.3耦合电路及保护措施