基于组态软件的电动汽车CAN总线网络设计(精选9篇)由网友“你的母神”投稿提供,下面是小编给大家带来关于基于组态软件的电动汽车CAN总线网络设计,一起来看看吧,希望对您有所帮助。
篇1:基于组态软件的电动汽车CAN总线网络设计
基于组态软件的电动汽车CAN总线网络设计
为了解决电动汽车各部分之间的通信问题,基于iCAN和CANOPEN应用层协议设计了电动汽车车载网络平台,以MCGS组态软件开发了监控界面和以一台PC机作为数据处理中心.实验表明整个系统工作稳定可靠.
作 者:杨鸿铭 李优新 黎勉 姚震 YANG Hong-ming LI You-xin LI Mian YAO Zhen 作者单位:广东工业大学信息工程学院,广东广州,510006 刊 名:机电工程技术 英文刊名:MECHANICAL & ELECTRICAL ENGINEERING TECHNOLOGY 年,卷(期): 39(1) 分类号:U469.72 关键词:iCAN协议 CANOPEN协议 电动汽车 MCGS篇2:基于CAN总线的电动汽车灯光控制系统设计
基于CAN总线的电动汽车灯光控制系统设计
深入研究了CAN网络协议的技术规范,根据J1939应用层协议制订了相应的.通信协议,设计了基于P87C591单片机的CAN总线灯光控制系统网络.试验结果表明,所设计的灯光控制系统局域网络运行状况良好,满足使用要求.
作 者:郭俊飞 李军伟 郑玉英 GUO Jun-fei LI Jun-wei ZHENG Yu-ying 作者单位:郭俊飞,李军伟,GUO Jun-fei,LI Jun-wei(山东理工大学,交通与车辆工程学院,山东,淄博,255049)郑玉英,ZHENG Yu-ying(福建经济学校,福建,福州,350007)
刊 名:农业装备与车辆工程 英文刊名:AGRICULTURAL EQUIPMENT & VEHICLE ENGINEERING 年,卷(期): “”(3) 分类号:U463.65 TN915.04 关键词:P87C591单片机 CAN总线 CANoe篇3:基于USB的CAN总线适配器设计
基于USB的CAN总线适配器设计
摘要:提出一种使用USB接口实现CAN总线网络与计算机连接的方案。讨论了CAN总线与计算机之间的硬件接口电路,同时分析了固件编程方法及USB驱动程序设计思路。关键词:USB CAN总线 固件编程 适配器
现场总线作为二十世纪80年代发展起来的新兴技术,在工业现场已有了广泛的应用。在比较有影响力的几种现场总线中,CAN总线以其突出的优点不仅大量应用于工业现场,而且在楼宇自动化、智能终端设备等民用领域也有了长足的发展。
现场总线网络技术的实现需要与计算机相结合。以往CAN总线网络与计算机的连接采用RS232、ISA或PCI接口。但是随着计算机接口技术的发展,ISA接口已经逐渐被淘汰;RS232接口数据传输率太低;PCI虽然仍是高速外设与计算机接口的主要渠道,但其主要缺点是占用有限的系统资源、设计复杂、需有高质量的驱动程序保证系统的稳定,且无法用于便携式计算机的扩展。随着USB1.1、USB2.0规范的相继制定,为外设与计算机的接口提出了新的发展方向。USB的主要特点有:外设安装简单,可实现热插拨;通讯速率高,USB1.1全速传送速率为12Mbps,与标准串行端口相比,大约快100倍;支持多设备连接;提供内置电源。
本文给出一种在Windows下使用USB1.1协议实现CAN总线适配器的设计方法。整个设计主要开发适配器的固件及计算机的驱动程序、应用程序,以达到用USB接口连接现场CAN总线网络的目的。
图1
1 适配器硬件接口设计
适配器硬件电路由微控制器、CAN总线接口、USB总线接口和DC-DC隔离电源模块等组成。原理框图如图1所示。
微控制器P89C51RD2是Philips公司生产的增强型MCS-51兼容单片机,片内集成64KB闪存和1KB扩展RAM,双数据指针,4级中断优先级,7个中断源,(本网网收集整理)内置看门狗,可编程时钟输出,在6时钟模式下工作,速度是标准51单片机的两倍。此时外部最高频率可达20MHz。在高速、大程序容量、中小规模数据处理场合是一款非常理想的单片机型。
CAN总线接口使用Philips公司的独立CAN总线控制器SJA1000,并由光耦6N136进行总线隔离。SJA1000是一种独立控制器,用于移动目标和一般工业环境中的区域网络控制,符合CAN2.0A和2.0B规范,最高速率可在达1Mbps。CAN总线收发器采用PCA82C250。
PDIUSBD12是Philips公司推出的全速USB接口器件,完全兼容USB1.1规范。图1中D+引脚信号电平通过器件SoftConnect命令内部上拉,从而向主机表示为一个全速设备。EOT引脚自动检测USB接口的VBUS电压以确定USB电缆是否连接到了主机。SUSPEND是双向引脚,用以向微控制器指示器件是否挂起。当有USB总线事件发生时,引脚向微控制器发出中断信号。PDIUSBD12支持总线复用和非复用两种并行接口模式,以方便连接不同类型的微控制器。图1中采用总线复用方式,当用奇数地址访问PDIUSBD12时被认为是命令,偶数地址访问则被认为是数据读写。
各器件都需要外部时钟信号,而且它们自身也都有可编程的时钟输出功能,这就给系统的时钟设计带来了便利。图1中微控制器6时钟运行模式下,外部为12MHz晶振。P89C51RD2的P1.1引脚产生6MHz方波作为PDIUSBD12的.输入时钟;通过PDIUSBD12的SetMode寄存器编程使CLKOUT输出时钟频率为24MHz,作为SJA1000的外部输入时钟。
2 软件设计
软件设计包括微控制器的固件设计和计算机端USB驱动程序两部分。
2.1 微控制器固件编程
固件编程是USB数据传输系统中终端设备程序设计的一个重要概念。微控制器通过固件是程序与计算机进行数据交换。固件设计的目的是:使PDIUSBD12在USB上达到最大的传输速率;增加系统的可扩展性和硬件无关性。
固件要实现的内容:一是对SJA1000初始化,接收CAN总线送来的数据,收集CAN网络状态信息,并将主机的数据下发到CAN网络;二是对PDIUSBD12初始化,完成USB总线连接过程,并组织CAN网络和主机之间的数据传送。设计中采用KeilC51软件编译环境,C51和ASM混合编程方式。
SJA1000和PDIUSBD12都有完善的中断机制,微控制器可以通过读它们的中断寄存器获得总线事件。为了提高固件的运行效率,主程序对系统进行实始化后开放中断,在中断服务程序中对事件进行分析和必要的处理,并设置相应的变量标志和数据缓冲区。主程序则循
环查询变量标志,调用相应的子程序进行处理。这种程序结构使得主程序能够在前台处理各种数据传送任务,同时又可以通过中断在后台及时处理总线事件。
2.1.1 CAN协议实现
SJA1000支持BasicCAN和PeliCAN两种协议模式。在适配器设计中采用了BasicCAN模式。中断设为电平中断方式,SJA1000中断服务程序框图如图2所示。
2.1.2 USB1.1协议实现
PDIUSBD12支持所有的四种USB数据传输方式。在适配器的设计中使用了控制传输、中断传输和批量传输。控制传输中只用来传递控制信息,固定使用端点0;中断传输使用端点1,用来传送CAN网络状态信息;批量传输用来实现主机和CAN网络节点之间的数据传送,使用端点2。图3是PDIUSBD12中断服务程序框图。
2.2 驱动程序设计
USB驱动程序属于WDM(Windows driver module)类型。WDM驱动程序是分层的,引入了FDO(Function Device Object)和PDO(Physical Device Object)两个新类来描述硬件,每一个物理硬件有一个PDO,但是可以有多个FDO,在驱动程序中直接操作的是PDO和FDO。系统通过全局唯一标识符GUID实现驱动程序的识别。应用程序和WDM驱动程序通信时,系统为每个用户请求打包形成一个I/O请求包发送到驱动程序。
图4是Windows中USB的通信层次结构模型。图4系统软件方块中的底部是Windows系统提供的驱动程序,包括主控制器驱动程序(OPENHCI.SYS或者UHCD.SYS)、HUB驱动程序(USBHUB.SYS)是一个类驱动程序(USBD.SYS)。
Windows2000下驱动程序的设计工具是VC++和Win2000DDK,但是直接使用DDK编程有相当大的难度。目前有第三方软件厂商提供了一些驱动程序开发工具,如Jungo公司的WinDriver、Compuware公司的DriverStudio等。这些工具仍然是基于WindowsDDK的,但是进行了新的封装,提供了驱动程序设计向导。
适配器设计中采用了DriverStudio作为驱动程序开发工具。利用其中的DriverWorks一步步地作出选择并修改少量参数,即可生成驱动程序框架和测试台应用程序框架,对USB设备的通用性部分支持得很好。在程序框架,对USB设备的通用性部分支持得很好。在VC++中对向导生成的代码作修改,并对设备特殊功能部分添加处理代码,然后用VC++编译为*.SYS文件,就是一个完整的驱动程序。SoftIce是DriverStudio的另一个调试工具,可以对驱动程序进行操作系统内核级的跟踪与调试。
生成驱动程序后,编写相应的INF文件是重要的一步。INF文件在操作系统发现新硬件之后向系统指明应该安装的驱动程序、系统向设备提供的服务以及注册表项要修改的内容。
基于USB接口的CAN总线适配器经过试验运行证明:在中小规模和短时大数据块传送时,能够很好地完成网络通信任务。USB接口是计算机外设的发展趋势,目前主要用在中低速场合。随着USB2.0规范的推出,又逐渐向高速应用发展。因此将现场总线网络和计算机接口相连的适配器具有广泛的应用前景。
篇4:基于USB的CAN总线适配器设计
基于USB的CAN总线适配器设计
摘要:提出一种使用USB接口实现CAN总线网络与计算机连接的方案。讨论了CAN总线与计算机之间的硬件接口电路,同时分析了固件编程方法及USB驱动程序设计思路。关键词:USB CAN总线 固件编程 适配器
现场总线作为二十世纪80年代发展起来的新兴技术,在工业现场已有了广泛的应用。在比较有影响力的几种现场总线中,CAN总线以其突出的优点不仅大量应用于工业现场,而且在楼宇自动化、智能终端设备等民用领域也有了长足的发展。
现场总线网络技术的实现需要与计算机相结合。以往CAN总线网络与计算机的连接采用RS232、ISA或PCI接口。但是随着计算机接口技术的发展,ISA接口已经逐渐被淘汰;RS232接口数据传输率太低;PCI虽然仍是高速外设与计算机接口的.主要渠道,但其主要缺点是占用有限的系统资源、设计复杂、需有高质量的驱动程序保证系统的稳定,且无法用于便携式计算机的扩展。随着USB1.1、USB2.0规范的相继制定,为外设与计算机的接口提出了新的发展方向。USB的主要特点有:外设安装简单,可实现热插拨;通讯速率高,USB1.1全速传送速率为12Mbps,与标准串行端口相比,大约快100倍;支持多设备连接;提供内置电源。
本文给出一种在Windows2000下使用USB1.1协议实现CAN总线适配器的设计方法。整个设计主要开发适配器的固件及计算机的驱动程序、应用程序,以达到用USB接口连接现场CAN总线网络的目的。
图1
1 适配器硬件接口设计
适配器硬件电路由微控制器、CAN总线接口、USB总线接口和DC-DC隔离电源模块等组成。原理框图如图1所示。
微控制器P89C51RD2是Philips公司生产的增强型MCS-51兼容单片机,片内集成64KB闪存和1KB扩展RAM,双数据指针,4级中断优先级,7个中断源,内置看门狗,可编程时钟输出,在6时钟模式下工作,速度是标准51单片机的两倍。此时外部最高频率可达20MHz。在高速、大程序容量、中小规模数据处理场合是一款非常理想的单片机型。
CAN总线接口使用Philips公司的独立CAN总线控制器SJA1000,并由光耦6N136进行总线隔离。SJA1000是一种独立控制器,用于移动目标和一般工业环境中的区域网络控制,符合CAN2.0A和2.0B规范,最高速率可在达1Mbps。CAN总线收发器采用PCA82C250。
PDIUSBD12是Philips公司推出的全速USB接口器件,完全兼容USB1.1规范。图1中D+引脚信号电平通过器件SoftConnect命令内部上拉,从而向主机表示为一个全速设备。EOT引脚自动检测USB接口的VBUS电压以确定USB电缆是否连接到了主机。SUSPEND是双向引脚,用以向微控制器指示器件是否挂起。当有USB总线事件发生时,引脚向微控制器发出中断信号。PDIUSBD12支持总线复用和非复用两种并行接口模式,以方便连接不同类型的微控制器。图1中采用总线复用方式,当用奇数地址访问PDIUSBD12时被认为是命令
[1] [2] [3]
篇5:CAN总线扩充器MCP25050
1 概述
MicroChip公司生产的CAN(Controller Area Net-work)总线I/O扩充器MCP25050,可用于在CAN总线系统中扩充CAN总线节点,它可以独立构成一个CAN节点而不需要再加微控制器。该器件采用14脚小型封装和低功耗CMOS工艺技术,可在2.7~5.5V电压范围内正常工作。它能够支持的CAN2.0B标准位速率可达1Mbit/s;NCP25050内含一个可编程的屏蔽器、二个可编程的接收过滤器、4路10位A/D转换器、两路PWM输出、三个自动传送数据缓冲区、两个接收数据缓冲区及低功耗工作方式;其芯片配置信息可通过CAN总线在线修改,并可工作在1-WireCAN总线工作模式;同时,它还可使系统具有远程输入和输出功能。因此,在扩充简单的瘦客户CAN总线远程节点时,使用它会带来意想不到的便利。
(本网网收集整理)
2 MCP25050内部结构
MCP25050内部功能图如图1所示,引脚图如图2所示。从图中可看出:该器件主要由用户存储区、时钟产生器、控制逻辑、CAN协议模块、A/D转换和PWM模块组成。以下分别介绍:
控制逻辑部分主要起着把其它几部分接合在一起的作用,另外它还控制数据的传送和接收以及在上电初始化时对内部寄存器的控制操作。
时钟产生器部分可为其它芯片提供时钟脉冲。
用户存储区是一块ROM区,主要是一些控制寄存器,利用它可以先对用户存储区进行编程,以使MCP25050在上电复位后工作在用户事先定义的模式。这些寄存器可通过CAN总线来访问。
A/D部分主要是对输入的模拟信号自动进行A/D转换。
CAN协议模块主要是对要发送的数据进行CAN数据包的封装,或是对接收到的CAN数据包进行解包。它有二个彼此独立的接收缓冲区,且每个接收缓冲区都有自己的接收过滤器。同时,错误管理逻辑也位于此模块内。因此,CAN协议模块是MCP25050的核心模块。
利用GPIO模块可对八个输入输出引脚进行管理,并可通过设置寄存器来使每个引脚工作在不同的方式。MCP25050各引脚功能说明如表1所列。
表1 MCP2505的引脚功能说明
引脚名称脚 号功 能复用功能
GP0/AN01双向IO口模拟输入通道0GP1/AN12双向IO口模拟输入通道1GP2/AN2/PWM13双向IO口模拟输入通道2/PWM输出GP3/AN3/PWM24双向IO口模拟输入通道3/PWM输出GP4/VREF-5双向IO参考电源负端GP5/VREF+6双向IO口参考电源正端VSS7电源地线无OSC1/CLKIN8外部晶体输入外部时钟信号输入OSC29外部晶体输出无GP6/CLKOUT10双向IO口时钟信号输出GP7/RST/VPP11双向IO口复位端RXCAN12CAN数据输入无TXCAN/TXRXCAN13CAN数据发送1-Wire操作下的发送接收端VDD14电源无3 工作原理
在MCP25050上电后,系统将首先进入复位操作模式,此时它将会禁止接收和发送数据,同时,A/D转换器和PWM也被禁止;而后MCP25050进行自初始化,自初始化主要通过把用户存储区的数据读入SRAM中实现;当自初始化完成后,MCP25050将进入正常工作模式,以准备接收或发送数据,这时A/D转换器和PWM都可以正常工作;接下来MCP25050会在CAN总线上发一个“在线”信号给网络,以通知整个网络存在这个站点。
MCP25050通过一个通用屏蔽器、二个接收过滤器及二个接收缓冲区来确定接收到的数据是否被接受。MCP25050有三种数据类型:信息请求数据、输出数据和输入数据。其中信息请求数据是指MCP25050接收到的数据,输出数据则是指MCP25050回应信息请求而发出的数据,而输入数据指的是MCP25050接收到的'可用来修改寄存器的数据。
MCP25050还具有自动传送功能,它有三个彼此独立的发送数据ID:TXID0、TXID1和TXID2。其中TXID0用来发送“在线”信号,TXID1用来发送“命令确认”信号、接收缓冲区溢出信号和出错信息,TXID2则用来传送A/D转换结果。
4 实际应用
在传统的CAN总线系统中,如果需要再增加一个节点,一般的做法是用一片MCU?微控制器?和一片CAN总线控制器?如SJA1000、MCP2510等?为主来构成。这样虽然节点的功能很强,但在有些应用中是完全不必要的,如在瘦客户的CAN应用中,通常不需要节点有多少功能,只要求节点能够采集数据即可,此时,MCU+CAN控制器的方式就显得有些过于复杂和昂贵;但如果采用CAN总线扩充器MCP25050来组建,则不但可简化系统设计,也可减少设计成本,因为这种方案只需要一片MCP25050和一片CAN总线驱动器即可,而完全不需要MCU和CAN总线控制器。其常用电路如图3所示。
应用MCP25050扩充CAN总线节点是一个既方便又经济的办法。在现存或新的CAN总线系统中使用它会带来很多便利,其最大的好处是不需要MCU。笔者在设计监测多点温度的CAN系统中成功地使用了这一方案。实践证明,MCP25050可靠性高,运行稳定。
篇6:CAN总线扩充器MCP25050
1 概述
MicroChip公司生产的CAN(Controller Area Net-work)总线I/O扩充器MCP25050,可用于在CAN总线系统中扩充CAN总线节点,它可以独立构成一个CAN节点而不需要再加微控制器。该器件采用14脚小型封装和低功耗CMOS工艺技术,可在2.7~5.5V电压范围内正常工作。它能够支持的`CAN2.0B标准位速率可达1Mbit/s;NCP25050内含一个可编程的屏蔽器、二个可编程的接收过滤器、4路10位A/D转换器、两路PWM输出、三个自动传送数据缓冲区、两个接收数据缓冲区及低功耗工作方式;其芯片配置信息可通过CAN总线在线修改,并可工作在1-WireCAN总线工作模式;同时,它还可使系统具有远程输入和输出功能。因此,在扩充简单的瘦客户CAN总线远程节点时,使用它会带来意想不到的便利。
2 MCP25050内部结构
MCP25050内部功能图如图1所示,引脚图如图2所示。从图中可看出:该器件主要由用户存储区、时钟产生器、控制逻辑、CAN协议模块、A/D转换和PWM模块组成。以下分别介绍:
控制逻辑部分主要起着把其它几部分接合在一起的作用,另外它还控制数据的传送和接收以及在上电初始化时对内部寄存器的控制操作。
时钟产生器部分可为其它芯片提供时钟脉冲。
用户存储区是一块ROM区,主要是一些控制寄存器,利用它可以先对用户存储区进行编程,以使MCP25050在上电复位后工作在用户事先定义的模式。这些寄存器可通过CAN总线来访问。
A/D部分主要是对输入的模拟信号自动进行A/D转换。
CAN协议模块主要是对要发送的数据进行CAN数据包的封装,或是对接收到的CAN数据包进行解包。它有二个彼此独立的接收缓冲区,且每个接收缓冲区都有自己的接收过滤器。同时,错误管理逻辑也位于此模块内。因此,CAN协议模块是MCP25050的核心模块。
利用GPIO模块可对八个输入输出引脚进行管理,并可通过设置寄存器来使每个引脚工作在不同的方式。MCP25050各引脚功能说明如表1所列。
表1 MCP2505的引脚功能说明
引脚名称脚 号功 能复用功能
GP0/AN01[1] [2] [3]
篇7:CAN总线与以太网互连系统设计
CAN总线与以太网互连系统设计
摘要:介绍了一种基于单片机SX52的CAN与以太网互连方案,阐述了以太网和CAN总线网络协议转换的软硬件设计,实现了以太网与现有CAN总线网的直接连接。保证管理监控层(以太网)与生产测控层(CAN总线网)之间的连接,使得上下层数据能方便地通信。关键词:现场总线CAN总线以太网
在大型企业自动化系统中,上层企业管理层和生产监控层一般都采用以太网和PC机,而下层车间现场则采用现场总线和单片机测控设备。上下两层的沟通,通常采用工业控制机加以太网卡,再加上PC机插槽上的接口卡或并行打印口的EPP接口卡实现。这种连接方式成本高,开发周期长。针对这种情况,笔者设计一种单独的CAN以太网网关互连系统,成功地实现以太网与现有CAN总线网的直接数据互联。
1系统结构
系统总体结构分为三部分:现场测控网络(CAN网络)、嵌入式透明SX52网关、以太网信息管理终端(如监控平台和网络数据库等),如图1所示。
CAN总线是一个设备互连总线型控制网络。在CAN总线上可以挂接多达110个设备节点,各设备间可以自主相互通信,实现复杂网络控制系统。但设备信息层无法直接到达信息管理层,要想设备信息进入信息管理层需通过数据网关。嵌入式透明SX52网关就是为此而设计的。
透明式网关在以太网应用层构建和解析完整的CAN协议数据包。CAN协议数据包作为TCP/IP网络应用层的数据进行传输,它对通信数据的具体实际意义不做任何解释。透明式网关由通信处理器、CAN总线控制器和以太网控制器三部分组成。其中SX52单片机为核心处理器,它实现了CAN控制网络与以太网之间的协议转换。以太网信息管理层的控制指令发送到嵌入式透明SX52网关,将TCP/IP协议包数据转换为CAN协议形式发送至CAN控制网络中的指定设备节点,完成信息管理层对现场设备层的控制。同样地,当CAN网络上的设备数据(如定时采样数据或报警信息)要传输到信息管理层时,可将数据发送到嵌入式透明SX52网关,再通过网关协议转换程序将CAN协议数据封装成TCP/IP协议的以太网数据帧发送至以太网上的监控计算机。
以太网信息管理终端是一个根据用户的具体要求而设计的用户层应用软件。它可以是一个WIN32监控程序或网络数据库(记录CAN节点设备数据)软件等;甚至可能是CAN节点设备的`服务器软件,为设备提供较复杂的数据处理工作。
2硬件设计
系统硬件分为两大部分:CAN总线网络设备接口设计和嵌入式透明SX52网关设计。
2.1CAN总线网络设备接口设计
CAN总线网络设备接口设计较网关设计简单。它是在完成设备功能的基础上加入一个CAN通信控制器接口芯片,实现与CAN总线网络的连接。考虑到开发成本和灵活性,笔者在设计中选用PHILIPHS公司的独立CAN通信控制器SJA1000芯片和CAN总线收发器82C250芯片。其结构如图2所示。
2.2嵌入式透明SX52网关设计
嵌入式透明网关设计是整个系统设计的核心。其结构如图3所示。它由CAN控制器协议转换模块和以太网控制器协议转换模块两部分组成。网关硬件中SX52微处理器起核心作用。它是由美国Ubicom公司研制的高速可配置通信控制器,其处理速度相当高。在外接100MHz时钟时,指令执行速度可达100MIPS。它可实现TCP/IP协议栈中的ARP、IP、UDP、TCP、HTTP、SMTP、ICMP等网络协议。
CAN控制器协议转换模块硬件电路原理如图3左框图。它由三部分组成:微控制器SX52、独立CAN通信控制器SJA1000、CAN总线收发器82C250。其中SX52为唯一的CPU核心,负责SJA1000的初始化,通过读写SJA1000内部寄存器实现数据的接收、发送和错误处理等。PCA82C250则提供对总线的差动发送能力和对CAN控制器的差动接收能力。
以太网控制器协议转换模块主要由微控制器SX52、以太网通信控制器RTL8019AS和隔离滤波器FB2002组成。RTL8019AS是台湾Realtek公司制造的一种高集成度的全双工10Mbps以太网控制芯片,实现了基于Ethernet协议的MAC层的全部功能,内置16KB的SRAM、双DMA通道和FIFO完成数据包的接收和发送功能。在网关设计中,使用跳线模式(JP置为高)硬配置RTL8019AS为8位模式。使用RTL8019的低5位地址线A0~A4以及低8位数据线D0~D7。SX52的B口的B0~B4脚作为地址线连接RTL8019AS的低5位地址线,B5~B7作为控制线分别连接读写时序控制脚IORB、IOWB、IOCHRDY;C口作为数据线连接RTL8019AS的低8位数据线;A口保留,用作日后扩展。图3中
AT24C64为8KBEEPROM,主要用来保存嵌入式透明SX-52网关的配置信息,如网关IP地址、MAC地址和SJA1000的ID网络标示符、网络掩码AMR和总线定时(BTR0、BTR1)等。这样,可以灵活方便地修改网关参数,适应不同环境,同时也考虑到以后的扩展。
RTL8019AS除与SX52连接外,还将其网络收发器的4根引脚TPOUT+、TPOUT-、TPIN+、TPIN-通过外接的隔离滤波器FB2002与以太网相连。采用隔离滤波器FB2002是为了提高网络通信的抗干扰能力。
3软件设计
整个互联系统的软件设计可以分为三部分:CAN总线设备接口通信程序、透明网关协议转换程序和以太网层应用程序设计。其中,CAN总线设备接口通信程序和透明网关协议转换程序的CAN控制器协议模块在结构上有较大的相似性,但有可能因采用微控制器不同而导致实现的程序语言相异。因而,在此不作论述,而主要讨论后两个方面的程序设计。
3.1透明网关协议转换程序
透明网关协议转换程序的整体设计思路为:当以太网应用层有数据要发送到CAN节点时,首先,数据发送到透明网关由以太网控制器协议转换模块从传输层数据报文中解析出完整的CAN协议数据包,存放在数据缓冲区A?再通知总调度模块,由它调用CAN控制器协议模块将CAN协议数据包发送到CAN总线上。反过来,当CAN设备有数据要发送到用户层时,首先,数据发送到透明网关由CAN控制器协议模块将完整的CAN协议数据包存放在数据缓冲区B?再通知总调度模块,由它调用以太网控制器协议转换模块将完整的CAN协议数据包作为应用层数据封装起来,再发送到以太网的应用层。其程序结构如图4所示。
3.1.1CAN控制器协议模块
CAN控制器协议转换模块程序主要由SJA1000的寄存器读程序CANRead、写程序CANWrite()、初始化程序CANInit()、发送程序txdsub()、接收程序rxdsub()程序组成。之所以要编写单独的SJA1000的寄存器读、写子程序,这是由SX52芯片只有I/O端口决定的。
选用CAN2.0A协议构建CAN总线控制网络,对SJA1000的初始化主要完成控制寄存器CR、验收代码寄存器ACR、验收屏蔽寄存器AMR、总线定时寄存器BTR0,1和输出控制寄存器OCR的设置。初始化完成后,由总调度模块监控SJA1000控制器。当CAN总线上有数据到达时,它调用接收子程序rxdsub(),把这一帧数据包存入数据缓冲区B中,然后释放接收缓冲器。同样,当有按CAN2.0A协议格式组合成的一帧数据报文在数据缓冲区A中要发送到CAN总线上去时,总调度模块将调CAN发送子程序txdsub()发送。
3.1.2以太网控制器协议转换模块
以太网控制器协议转换模块主要负责从UDP数据包中解析出完整CAN协议报文,存入数据缓冲区A。同时,可能将数据缓冲区B中的完整CAN协议报文封装成UDP数据报,然后将其发送到以太网上。
在通信传输层采用UDP协议是考虑到CAN协议数据报为短帧形式(每个数据帧最多为8字节)。如果采用TCP传输协议,要传输8字节CAN协议数据,要先通过3次握手建立连接,再传输数据,之后还要通过握手释放连接。这样传输效率对有限的网络资源来说无疑是一种浪费。而UDP是无连接的传输,可以提高网络传输效率,同时,也减轻网关的处理任务。当然,UDP传输协议是不可靠的,对于控制网络来说,是不允许的。为了提高通信的可靠性,采用了回传校验机制。通过实验测试表明这种方式是行之有效的。
以太网控制器协议转换模块主要由以太网卡驱动、ARP、UDP协议的若干个API函数组成,如NICInit()、NICDMAInit()、NICInitTxFrame()、NICSendTxFrame()、NICReadAgain()、ARPCheckIfIs()、ARPSendResponse()、ARPSendStPacket()、ICMPProcPktIn()、UDPAppInit()、IPGenCheckSum()、、UDPAppProcPktIn()、UDPStartPktOut()和UDPEndPktOut()等。所使用的变量有:remoteIP[3:0]、myIP[3:0]、UDPRxSrcPortMSB、UDPRxSrcPortLSB、UDPRxDataLenMSB、UDPRxDataLenLSB、UDPTxSrcPortMSB,UDPTxSrcPortLSB、UDPTxDestPortMSB、UDPTxDestPortLSB、DPTxDataLenMSB,UDPTxDataLenLSB等。
系统首次执行或复位时,以太网控制器协议转换模块将首先调用NICInit和UDPAppInit()等进行NIC、ARP、IP、UDP和应用程序的初始化。初始化完成后,即进入主循环。在主循环中,SX52将反复检测RTL8019AS是否接收以太网帧。当有数据被接收时,SX52调用NICDMAInit()和NICReadAgain()读入以太网帧首部?再调用ARPCheckIfIs()判断接收帧是否为ARP数据。若是ARP,则转入ARPSendResponse()和ARPSendStPacket()子程序进行ARP处理并发送响应ARP数据报;若不是ARP,则判断是否为IP数据报。若非IP数据报则清除该以太网帧;当所接收帧包含IP数据报时,则需进一步判断是ICMP数据报还是UDP数据报文。若是ICMP数据报则执行ICMPProcPktIn()子程序处理ICMP数据报并重发IP数据报;若数据为UDP数
据报文,则调用UDPProcPktIn()子程序。该程序将读入UDP数据报文首部的数据并进行相应处理,还原出完整的CAN协议数据报文存入数据缓冲区B中,再通知总调度程序,由总调度程序调用CAN总线控制子程序将CAN协议数据报文发往CAN总线。
反过来,当总调度程序通知以太网控制器协议转换模块将数据缓冲区B中准备好的CAN协议数据发送到以太网上时,它将调用NICInitTxFrame()、UDPStartPktOut()、IPGenCheckSum()、IPStartPktOut()、NICSendTxFrame()、UDPEndPktOut()等子函数进行发送处理,从而实现CAN总线到以太网的数据传输。
3.2以太网层应用程序设计
以太网上的通信协议一般采用TCP/IP协议。本文采用流行的SOCKET套接字编程,传输层协议选择UDP(用户数据报协议),通过VisualC++编写用户层程序。
WinSock提供了对UDP的支持,通过UDP协议可以向指定IP地址的透明网关发送CAN协议数据,同时也可以通过它接收CAN协议数据。发送和接收方处于相同的地位没有主次之分。利用CAsyncSocket类操纵无连接的数据发送较简单。首先生成一个本地套接口(需要指明SOCK_DGRAM标记);然后利用intCAsyncSocket??SendTo?constvoid?lpBuf?intnBufLen?UINTnHostPort?LPCTSTRlpszHostAddress=NULL?intnFlags=0?发送数据,intCAsyncSocket??ReceiveFrom?void?lpBuf?intnBufLen?CString&rSocketAddress?UINT&rSocketPort?intnFlags=0?接收数据。利用UDP协议可以使管理主机和SX52网关实现双向的数据通信。同时,这种传输方式也易于使数据SX52网关透明化。
本文介绍了一种低成本、高可靠性、快捷的CAN总线与以太网互连方案。该互连方案保证管理监控层与生产测控层之间的连接,方便了上下层信息交流,满足工厂、变电站等工业场合的应用要求。
篇8:CAN总线的嵌入式Web服务器设计
摘要:本文设计并实现一种可以将基于TCP/IP协议的计算机网络设备,与基于CAN总线协议的底层现场网络连通的嵌入式Web服务器。
关键词:嵌入式Web服务器 嵌入式Internet TCP/IP协议 CAN总线
引言
嵌入式系统指被嵌入到各种产品或工程应用中的,以微处理器或微控制器为核心的软硬件系统。嵌入式系统与Internet技术相结合,形成的嵌入式Internet技术是近几年随着计算机网络技术的普及而发展起来的一项新兴技术。它通过现有嵌入式系统,增加因特网接入能力来扩展其功能,创造性地提出以低价位单片机作为微处理器,使嵌入式设备而非PC系统直接接入Internet。在本文中,采用Ubicom公司的SX52单片机外接以太网控制芯片RTL8019AS实现嵌入式Web服务器硬件结构和软件功能。传统的基于DCS结构工控系统向嵌入式Web结构转移,可有效降低成本,这是因为没有必要开发专有的GUI,还可以方便最终用户,并改善故障检测和设备维护的远程访问能力。
图1
篇9:CAN总线的嵌入式Web服务器设计
通常嵌入式系统硬件包括微控制器、存储器外设器件和I/O端口等,其核心是嵌入式微控制器。为适应上网需求,嵌入式微控制器不仅要能执行传统的控制功能,还要能执行与连接因特网相关的功能,而Ubicom公司的SX52芯片能比较容易地实现TCP/IP协议,所以我们选择它作为微控制器。
实现嵌入式设备接入Internet,从原则上来讲最关键的就是要实现TCP/IP协议,还有一人关键的问题就是传输信息媒质的选择。我们采用最常用的连接模式,即通过以太网连接Internet,利用网络接口控制器来实现数据链路层协议。嵌入式系统应用最广泛的网络驱动芯片就是NE2000兼容系列网络芯片,它具有接口方便、驱动简单、占用资源少等优点,特别适合嵌入式系统。我们选用其中性能较了,供货比较稳定的RTL8019AS芯片。嵌入式Web服务器硬件结构框图如图1所示。
嵌入式Web服务器用SX52微控制器作为处理器,以太网驱动芯片RTL8019AS经耦合隔离滤波器HR61101G和RJ45接口接入以太网,配有RS232和CAN总线两个扩展接口,可以将具有RS232接口的设备或采用CAN总线协议通信的设备连到以太网上。RS232接口采用MAX232CPE芯片,CAN总线控制器采用Philips公司的SJA1000芯片,CAN收发器则采用了Philips公司的PCA82C250。
数据的流向为:请求和控制信息从局域网中来,通过RJ45送到RTL8019AS,RTL8019AS负责将以太网帧的首部和尾部信息剥离,将处理后的数据包送入SX52的TCP/IP协议栈,由协议栈对数据报进行解析,得到原始的请求和控制信息。请求和控制信息再经过SJA1000进行CAN协议格式的数据封装,再和现场的CAN总线设备进行通信。请求和控制的回复领先局域网的过程与上面正好相反。图2为Web服务器主要芯片连接电路简图。
SX52有5个I/O口,共40个引脚。在设计中,利用SX52的C口的RC0~RC7连接RTL8019AS的数据口SD0~SD7;SX52的B口兼顾选址和读写控制功能,在开发中用它与RTL8019AS的地址及读写控制引脚连接。在确保通信功能顺利实现的同时,充分利用了SX52芯片I/O口灵活配置的特点,最大程序地节约了微控制器SX52的硬件资源。
图2
RTL8019AS基地址选择引脚IOS0~IOS3接地,此时I/O基地址为300H,即0011 00000 000,所以地址线SA9、SA8接+5V。因为寄存器地址偏移量为00H~1FH共32个,对应地址从300H到31FH,所以只需将地址线SA0~SA4接SX52的RB0~RB4,其余地址线接地即可。芯片IORB、IOWB引脚为读写信号线,接SX52的RB6、RB5读写控制引脚。
RTL8019AS可以兼容8位和16位操作。图2中IOCS16是16位I/O的选择脚。当RTL8019AS上电复位的时候,如果这个脚为低电平,RTL8019AS将选择8位模式;如果这个脚为高电平,RTL8019AS将选择16位的模式。由于SX52是8位的数据总线,因此要用8位总线模式(每次读入或写入1个字节,只需8根数据线SD0~SD7),所以将这个脚接地。
RTL8019AS有3种工作方式:第一种为跳线方式,芯片的I/O和中断由跳线决定;第二种即插即用方式,由软件进行自动配置;第三种为免跳线方式,芯片的I/O和中断由外接的93C46里的内容决定。常用网卡上的RTL8019AS一般只支持第二种和第三种方式。在嵌入式应用的场合,为降低成本,同时又减少连线,不使用93C46。本设计中使用第一种方式,此时JP引脚接高电平。
AUI引脚决定使用AUI还是BNC接口。高电平时使用AUI接口,低电平时使用BNC接口,支持8线双绞线或同轴电缆。本设计中采用双绞线为通信介质,将该引脚接地。
RTL8019AS使用引脚TPIN+、TPIN-、TPOUT+和TPOUT-连接耦合隔离滤波器HR61101G,利用RJ45插头实现与以太网的连接。
SJA1000是独立的CAN通信控制器,支持CAN2.0B协议,其工作频率为6~24MHz。它的AD0~AD7为地址数据复用线,与SX52的D口RD0~RD
7相连。当远端用户通过Web服务器查询现场的CAN总线数据时,SJA1000负责将现场控制单元的CAN总线数据解析,发送到SX52,再传到网上。
PCA82C250是CAN协议控制和物理总线的接口,它对总线提供发送能力,并对CAN控制器提供接收能力,它支持1Mbps速度。为保证SX52与SJA1000协同工作,在硬件设计中们将两个芯片共同一个硬件复位线,确保SX52与SJA1000硬件同步复位。(本网网收集整理)
AT24C256是I2C总线的EEPROM,通常可以用来存储用户的一些设置,比如IP地址、网关等。在本设计用它存储静态网页。SCL接SX52的RA4脚,SDA接SX52的RA5脚。
MAX232CPE完成232电平与TTL电平转换,提供一个本地接口,为调试和维护提供方便。TXD接SX52的RA5脚。
MAX232CPE完成232电平与TTL电平转换,提供一个本地接口,为调试和维护提供方便。TXD接SX52的RA2脚,RXD接SX52的RA3脚,RS-RXD和RS-TXD是RS232电平,为标准串口电平。数据可以从串口输入到单片机SX52,SX52再把数据送到RTL8019AS传出去。
★ 芯片的自述作文
【基于组态软件的电动汽车CAN总线网络设计(精选9篇)】相关文章:
基于DSP和以太网的数据采集处理系统2022-10-09
EIB系统基本原理及应用论文2023-11-29
500台以上大型网吧组网方案2022-09-16
开发部年终总结2024-01-28
dcs培训总结范文2022-04-30
基于Internet的智能家庭网络控制器的实现2023-04-01
开发部工作职责2022-05-08
机械电子毕业论文范文2022-09-17
开发部个人总结2023-02-03
低压真空断路器的论文2023-01-06