原创 基于PSoC技术的LIN总线数据分析仪

2009-9-22 19:16 2037 6 6 分类: EDA/ IP/ 设计与制造
作者:    时间:2007-12-31    来源: 
 
      

摘要: 随着汽车电子技术的发展,LIN(Local Interconnect Network)总线技术更多地运用到汽车的分布式电子控制系统中。在LIN协议的各种实现方法和分析工具中,比较各种方法和工具的性能,优缺点,采用PsoC和WirelessUSB技术实现LIN总线分析仪。因为PsoC具有硬件模块可重配置功能以及芯片在不同的时钟周期中实现不同的功能,能有效地节约设计时间,降低了系统功耗和开发成本。


关键词: LIN;PSoC;WierlessUSB


引言


LIN是一种低成本的串行通讯网络,用于实现汽车中的分布式电子系统控制。LIN的目标是为现有汽车网络(例如CAN总线)提供辅助功能。在不需要CAN总线的带宽和多功能的场合,比如智能传感器和制动装置之间的通讯,使用LIN总线可大大节省成本。


目前,低成本的局部互联网络LIN在汽车电子和工业控制中的应用越来越广泛,而基于LIN总线的协议分析和调试测试工具少且昂贵。大部分LIN总线开发工具存在一些问题:(1)调试LIN总线通常做法是通过网关将LIN帧转换成CAN帧,再用基于CAN的测试工具间接调试LIN,当网关出现问题时这种方式就行不通;(2)和PC连接时采用串口或USB接口等有线的连接方式,在特定环境无法引线的情况下无法进行现场开发调试。


SoC(System on a Chip 片上系统)技术是将微控制器或DSP核、存储器、逻辑电路、I/O接口及其他功能模块综合在一颗芯片上的系统解决方案。由于处理器和存储器的可编程能力,使得这种以CPU为核心的解决方案具有很强的灵活性和可修改能力。赛普拉斯(Cypress)公司开发的 PSoC是目前最具灵活性的基于微控制器的片上系统解决方案,它模块化的片内数字和模拟电路不仅具有很高的可编程性,而且还可以实现动态重新配置,即在运行时根据系统不同时刻的需求,通过编程动态地改变存储在片内闪速存储器中设定的参数,重新定义系统所需要功能模块的种类和数量,动态地完成芯片资源的重新分配,实现新的外围元器件的功能。采用PSoC可以迅速缩短设计周期,降低设计风险,保证系统资源的最大化、最合理化和最经济化应用,在无线、手持式设备、数据通信和工业系统设计等领域PSoC都有着广泛的应用。


WirelessUSB是Cypress公司专门针对短距离点到点或多点到点的无线连接而设计的一种低延迟、干扰免疫、低成本和低功耗的短距离无线网络,适合无线电脑外设和无线传感器网络应用。WirelessUSB的协议是轻量级的,可以在只带256字节RAM和8K字节ROM的8位微控制器中实现。WirelessUSB使用频分多址(FDMA)和码分多址(CDMA),可有效避开其它无线网络的干扰,能够与蓝牙、Wi-Fi等无线网络共存,在面向2.4GHz无线系统的同类产品中提供最佳的抗干扰性能。传输距离从10米(最高1Mbps)到50米(最高62.5Kbps),使用既有的USB架构,因此无须特别的驱动软件。


为弥补LIN网络开发工具的不足,本文提出的方案—基于PSOC的无线LIN总线分析仪,通过无线连接能并行调试多个LIN总线,在有效降低开发成本和提高开发效率的同时提供更好的扩展性和灵活性。


LIN总线分析仪硬件介绍


LIN总线数据分析系统由主机桥接器(1个)和总线监控终端(多个)两部分组成。总线监控终端采集LIN总线上的数据,通过无线网络发送给主机桥接器;主机桥接器从无线网络上接收LIN总线监控数据,通过USB接口发送到PC,由PC监控软件对数据做进一步处理。系统可以实现数据监听、错误检测、主机仿真、从机仿真等功能。


系统的硬件由主机桥接器(通过USB接口连接PC)和LIN总线监控终端(连接LIN总线)组成,LIN总线监控终端选用MCU+RF的构架,包括PSoC控制器、射频收发器、LIN收发器和电源管理等,硬件原理图如图1所示。





图1 总线监控终端硬件原理图


主机桥接器采用PRoC架构,在单芯片内集成了线性稳压器、enCoRe-II微控制器、USB设备和射频收发器,仅需极少的外部元件,其硬件结构如图2所示。





图2 主机桥接器的硬件结构图


系统在选择控制器时考虑到功能的扩展,选用了功能强大的CY8C29466,它集成了性能为4MIPS的8位M8C处理器、32K的Flash、2K的SRAM,还集成了24/48MHz晶振、32KHz晶振,以及16个可编程的功能强大的数字用户模块、12个模拟用户模块和可编程的内部互联,可非常方便地选用多达100种的外设和设置连接方式,将PCB上大部分的元件和走线移到芯片内部,而且可动态重配置,开发非常灵活。


系统中的射频芯片选择CYRF6936,它属于WirelessUSB LP系列,是Cypress的第二代射频片上系统(SoC),兼容第一代的CYWUSB69XX器件。CYRF6936增加了一系列增强的特性,包括更广的操作电压范围(1.8~3.6V)、更小的工作电流、更高的数据率(最大速率为1Mbps)、更短的晶振起振时间、同步稳定时间和链路切换时间。CYRF6936可用于无线鼠标键盘、无线操纵杆、远程无线传感和控制、无线耳机、家庭自动化和自动化仪表等。


主机桥接器(Bridge)选用Cypress的PRoC(Programmable Radio On Chip) LP(Low Power)芯片CYRF69213。PRoC LP器件在一个芯片里集成了微控制器和射频收发器,是同样封装提供双重功能的单芯片解决方案,它主要集成了性能为4MIPS的8位M8C处理器、USB2.0低速接口、2.4GHz射频收发器,内部还集成了3.3V电压调节器和USB上拉电阻等,大大减少外部元件,缩小电路板面积,有效降低成本。CYRF69213的主要用于无线网络的桥接器,将无线网络的数据通过USB接口发往PC机,同时将PC机的控制命令发给无线设备。


局部互联网络(LIN)是车身网络的最低层级的网络,它提供了传感器和执行器之间的低成本通信。本论文采用LIN总线驱动器MC33661符合LIN 2.0规范,很好地解决了以前的驱动器MC33399模式过于单一、无法调节翻转频率导致器件功耗较大、驱动功率不够等问题。


考虑到系统的外部电源、MCU和无线射频模块的工作电源、MCU的工作电流,电源模块选用带关断功能的低压差线性稳压器LT1121-5(5V稳压)和高效率的线性电压调节器AMS1117-3.3(3.3V稳压)。系统的硬件实物图如图3,4所示。





图3 主机桥接器的实物图





图4 总线监控终端的实物图


LIN总线分析仪软件介绍


本系统的软件设计方案围绕着数据的提取、传输和处理。从数据流向上看,数据经过四个阶段的处理,分别是LIN总线协议处理(从总线上提取数据帧)、WirelessUSB协议处理、USB协议处理和PC监控软件的处理(显示监控数据和总线信息)。本系统软件可分成三大部分:总线监控终端、主机桥接器和PC,其中总线监控终端包括LIN协议处理和WirelessUSB协议处理,主机桥接器包括WirelessUSB协议处理和USB协议处理,PC包括USB协议处理和监控软件处理。


软件需要处理的任务


·总线监控终端软件设计


LIN总线监控任务:该任务时刻监控LIN总线的活动,当有数据帧到达时,将接收到的数据帧放入无线发送缓冲区,同时还需处理冲突和数据出错。


WirelessUSB从机传输任务:该任务监控数据帧传送到主机桥接器,同时接收主机的配置信息,传递给LIN监控任务。


·主机桥接器软件设计


主机USB设备监听任务:主要处理和USB主机的交互,时刻监听USB主机的请求事务。


WirelessUSB主机传输任务:主要功能是接收监控数据帧,传送给USB监听任务,同时将主机的配置信息传送给总线监控终端。


·PC机监控软件设计:


主机USB传输任务:该任务主要处理主机与USB设备的交换,定时发送事务轮询USB设备。


主机输入输出处理任务:该任务主要处理USB数据与用户的交互。


LIN2.1协议各层的实现任务


LIN总线具有规范的分层结构,它定义了物理层、数据链路层和传输层的协议规范。物理层定义了LIN总线传输媒介的物理特性、总线驱动和接收特性、位速率误差和位定时和同步等。数据链路层实现数据帧接收和错误检测、波特率计算以及数据的包装/解包,负责报文过滤和恢复管理等功能。传输层实现了单帧或多帧数据传输,在应用层和数据链路层之间翻译数据帧,传输诊断请求和响应,提供外部总线的诊断接口,实现节点配置、识别和诊断。


数据链路层是LIN2.1协议的核心,负责发送和接收数据帧,处理信号的组帧和解帧。


LIN协议的数据链路层的PSoC实现


由于LIN总线分析仪既可以监听总线活动,也可以仿真主机或从机节点。重点介绍总线分析仪数据链路层的实现。总线分析仪的数据链路层的实现包括调度表定时、间隔场的产生、间隔场和同步场的接收以及数据的传输。


调度表定时是通过一个8位计数器(Schedule_Timer)来实现的。 间隔场采用三个8位计数器产生, 一个8位计数器(SB_Baud_Rate_Counter)用来产生波特率时钟,为后两个计数器提供时钟;一个8位计数器(SB_Bit_Time_Counter)用来在每个数据位的中间产生位时中断;一个8位计数器(Synchro_Break_Counter)用来产生实际的间隔场。


接收间隔场和同步场的硬件配置包括1个16位的定时器、1个16位的计数器和RX(串口接收)引脚。一个带输入捕捉的16位定时器用来计算间隔场和同步场上升沿和下降沿之间的时间。一个16位的计数器用来判断超时状态。RX引脚连接到定时器的输入捕捉,配置捕捉触发为上升沿或下降沿。同时,使能RX引脚的GPIO中断,所有的计算都在GPIO中断服务程序中进行。


数据传输阶段的硬件配置包括2个8位计数器、1个串口接收模块和1个串口发送模块。一个8位计数器(DR_Baud_Rate_Counter)用来产生波特率时钟;一个8位计数器(Bit_Time_Counter)用来在每个数据位的中间产生位时中断;串口接收模块(RX8)用来接收数据(UART 8N1编码格式);串口发送模块(TX8)用来发送数据(UART 8N1编码格式)。


数据传输的工作原理如图5所示,相关处理如下:





图5 数据传输的工作原理


·缓冲器空中断:如果是第一次中断,则启动位时定时器并打开中断。如果要发送的字节数为0,则置最后字节已发送标志,否则发送下一字节数据,同时字节数减1。


·接收缓冲器满中断:当工作监听模式时,将所有接收到的数据保存到临时缓冲区。分析仪如果处于发送状态时则立即中断返回,否则处理接收的数据。当工作在主机模式时,随后的处理与主机的接收中断处理相同。当工作在从机模式时,随后的处理与从机的接收中断处理相同。


·数据传输位超时中断:当工作在主机模式时,中断处理与主机的位超时中断处理相同。当工作在从机模式时,随后的处理与从机的位超时中断处理相同。


·数据传输位错误中断:位时计数器每位产生一次中断,在ISR中通过比较TX和RX引脚是否相同来判断是否有位错误。如果检测到位错误,将载入接收间隔场和同步场的硬件配置,退出帧传输。


主机节点的数据链路层实现包括调度表的定时、间隔场的产生、字节数据(包括同步场和PID)的发送和字节数据的接收。


从机节点的数据链路层实现包括间隔场和同步场的接收、字节数据(包括PID)的接收和字节数据的发送。


结语


LIN总线分析仪基于PSoC架构,使用了5个数字模块来实现数据链路层的功能,充分利用了芯片内部多种硬件资源和动态可重配置特性,大大减轻软件负担,降低CPU的占用率。驱动软件运行在中断级,基于事件驱动,无循环等待和阻塞。当CPU运行在24MHz并且LIN传输速率为19200bps时,在消息间隔CPU的占用率为0%,在发送或接收消息时CPU最大的占用率为10%。实际测试表明该方案可靠、应用方便、能够有效降低成本,缩短开发流程。


参考文献:


1. LIN Consortium. LIN Specification Package Revision 2.1. Nov 24,2006


2. Cypress MicroSystems, Inc. PSoC Mixed Signal Array Technical Reference Manual Version 2.10. Cypress MicroSystems, 2005


3. 宋智宁,基于WierlessUSB的LIN总线分析仪的设计与实现,浙江大学硕士学位论文, 2007.6

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条