×
接口总线驱动 > 总线 > 详情

基于CAN总线模块的网络测控系统的实现

发布时间:2020-05-25 发布时间:
|
  1 引言   
 
  CAN总线控制网络和因特网采用统一的协议标准是 CAN总线控制网络和因特网集成的方式之一,目前,它还是一个探索性的工作。虽然嵌入式控制的应用已经十分广泛,但是 CAN总线控制网络和因特网采用统一的协议标准还是一个崭新的课题。这种方式将成为控制网络和因特网络完全集成的最终解决方案。由于分布式控制网络采用了面向不同应用的协议标准,因此二者集成时需要某种数据格式的转换机制,这将使系统复杂化,而且也不能确保数据的完整性。本文给出了基于 CAN总线模块的网络测控系统的各个硬件模块,以及 CAN通信的软件编程思想。

2 硬件系统的逻辑结构模块   

2.1 分布式测控系统结构   

图 1 基于 CAN总线的分布式测控系统结构网络测控系统扩展 CAN总线模块,要担负至少两个方面的任务:一是支持现场操作,包括数据采集、人机对话等;二是与上级节点进行数据交互,作为网络测控系统的底层设备。本文针对实验室的过程控制设备模拟工业现场设计了基于现场总线 CAN的分布式数字测控卡,系统结构框图如图 1所示。

基于 CAN总线的分布式测控卡主要由单片机 C8051F060,输入/输出电路、电源电路、人机接口和通信接口几部分组成。测控卡的工作原理如下:C8051F060单片机是完全集成的混合信号片上系统型 MCU,是数据采集与实施控制的理想微型控制器。它集成了两个 16位、1Msps的模拟/数字转换器,且带有 DMA控制器 ;集成有两个 12位数字/模拟转换器,具有可编程数据更新方式;集成有控制器局域网(CAN2.0B)控制器,具有 32个消息对象,每个消息对象有自己的标识掩码。工业现场设备的状态参数通过 I/V转换成电压信号, C8051F060单片机采集此信号后,通过 CAN总线发送给上级网络节点,同时上级网络节点下传的命令和参数经 DAC和 V/I转换电路转换成 0-20mA的电流信号,控制现场设备。人机界面提供系统状态与操作人员的友好交流平台,且备用了一路 RS-232异步串行通信总线。

本测控卡的微处理器是新华龙公司生产的单片机 C8051F060,该系列芯片是集成在一块芯片上的混合信号系统级单片机,其内核是与 MCS-51指令集完全兼容的 CIP-51微控制器内核,可以使用标准 803x/805x的汇编器和编译器进行软件开发。

在设计该测控卡时,为了增加系统的灵活性,将测控卡设计成了两块 PCB插接在一起的方式。C8051F060,JTAG接口及其晶振独立出来,设计在一块板子上称为核心板,系统的其他应用设计在另一块板子上称为应用板。核心板已构成了最简单片机系统,可以在不需要外围电路的基础进行程序的下载和调试;而应用板则可根据系统的需要灵活设计外围电路,这样,对于不同系统的应用需要只需修改应用板就可以了。

2.2 JTAG调试接口与晶振电路   

在 C8051F系列单片机片内都有一个 JTAG接口和逻辑,在上位机软件的支持下,PC机通过 JTAG接口直接对控制系统进行在系统仿真调试。它不仅支持 FLASH ROM的读/写操作以及非侵入式在系统调试,而且还为 JTAG逻辑在系统测试提供了边界扫描功能。 C8051F系列单片机上的四个引脚 TDI, TDO, TMS, TCK与调试工具串口适配器(RS232到 JTAG的接口模块)直接相连,进行程序的下载和调试。图 2 (a)是 JTAG调试接口。

C8051F060单片机包括一个可编程内部振荡器和外部振荡器驱动电路,系统可以由外部振荡器电路或内部振荡器分频提供。系统复位后可编程内部振荡器被默认为系统时钟,且对应 24.5MHz的基频。而外部振荡器电路可以驱动外部晶体、陶瓷谐振器、电容或 RC网络,也可以使用一个外部 CMOS时钟提供系统时钟。为了使串行通信接口的波特率精确更高,本测控卡使用了外部 11.0592MHz的晶振,并可用 l0MΩ电阻并联到晶振的两端,使系统更容易起振,如图 3(b)所示。

2.4 电源电路   

C8051F060单片机的工作电压为+3.3V,测控系统中还使用了 5V器件,本文设计了如图 3所示的电源电路。首先 220V交流电经滤波器进行共模滤波和差模滤波,为了降低电源工作时的电磁辐射,将交流电整流成高压直流电,然后进入电源模块 HAT15-05H12-WFCI得到输出+5V和一个+12V的两路直流电压。+12V供 ADC电路和 DAC电路单元使用,另一路 5V电源供 MAX202等 5V器件使用。3.3V电源部分采用了 LDO芯片 SPX1117M3-3.3,其特点是输出电流大,输出电压精度高,稳定性高。

C8051F060器件具有控制局域网(CAN)控制器,用 CAN协议进行串行通信。Silicon Labs CAN控制器符合 Bosch规范 2.0A(基本 CAN)和 2.0B(全功能 CAN)。CAN控制器包含一个 CAN核、消息 RAM、消息处理状态机和控制寄存器。C8051F060内部的 CAN只是一个协议控制器,不提供物理层驱动器。它的工作位速率可以达 1M位/秒,实际速率可能受 CAN总线上所选择传输数据的物理层的限制。CAN处理器有 32个消息对象,可以被配置为发送或接受数据。输入数据、消息对象及其标识掩码存储器在 CAN消息 RAM中。所有数据发送和接收过滤的协议处理全部由 CAN控制器配置 CAN控制器,读取接收到的数据和写入待发送的数据。CAN控制器的时钟等于 CIP-51 MCU的时钟(SYSCLK)。由于考虑到系统在不同场合的适用性,采用了两路 CAN驱动器。一路采用 TI公司生产的 SN65HVD230,工作电压 3.3V,适应恶劣工作环境的 CAN总线收发器,其最大传输能力可达 1Mbps。具有失地保护、过压保护、过热保护等功能。第 8脚的不同设置可以使芯片工作于高速、斜坡控制和低功耗 3种工作模式。本测控卡中,第 8脚接地使芯片工作于高速模式。并联在总线上的 30pF的电容 C24, C25可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。

另一路采用的是 82C250CAN收发器,芯片 82C250是 CAN控制器与物理总线之间的接口,它最初是为汽车中的高速应用(达 1 Mbps)而设计的。器件可以提供对总线的差动发送和接收功能。

82C250采用双向差分驱动,有助于抑制汽车等恶劣电气环境下的瞬变干扰。利用 82C250还可方便地在 CAN控制器与驱动器之间建立电气隔离,以实现总线上各节点间的电气隔离。本系统中 82C250的通信电路如图 4。

3 软件实现   

本节中将对系统软件进行详细阐述。由于被测控的几个量都是缓慢变化的,对测控系统的实时性要求不高。单片机大部分时间在进行参数测量,每次测量结束后使用查询方式将测量结果保存到数据缓冲池中。由于单片机的 RAM容量有限(C8051F060具有 4K的 RAM ),笔者使用了数据缓冲池,以保存一定数量的测量结果。缓冲池使用先进先出策略,在保存时先判断缓冲池是否填满,没满时缓冲指针加 1,数据保存进下一个单元,填满时使指针指向缓冲池的顶部,数据保存进缓冲池,以前的数据丢掉。本系统的设计重点是 CAN通信,因此,在 CAN通信时采用了中断方式。整个测控系统部分的软件流程图如图 5。

本文作者创新点:本文详细介绍了基于 CAN总线模块的网络测控系统的实现方法。该测控系统是采用 C8051F060作为微控制器,充分利用了该单片机丰富的片上资源,如 CAN控制器、AD转换器、DA转换器等,最后介绍了软件的编程思想。 


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
高速铁路中CAN延迟通讯故障的判定和解决