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

基于SOPC技术的EPA蓝牙接入点的设计与实现

发布时间:2020-05-21 发布时间:
|

    1、引言

    随着工业企业生产规模的扩大和自动化程度的提高,现场总线网络系统在大中型工业企业的自动生产控制中得到了广泛应用。大部分现场总线均使用有线传输技术作为其底层通信方式,而在一些特殊工业现场环境中,现场设备需要具有一定的移动性,有线介质的使用限制了设备的移动。为了解决设备的移动问题可以选择使用红外线、802.1lx、蓝牙等线缆替代技术来替代有线介质作为底层通信介质。使用无线技术连接的现场无线网络虽然提高了网络的灵活性,但却造成遗留有线现场总线和无线现场网络形成网络“孤岛”。为了实现两种网络的信息共享,需要在两者的边界使用接入设备实现两者的互操作。本文基于SOPC技术设计了能够有效连接EPA有线网段与蓝牙无线网段的接入点。

    2、实现原理
 
    由于蓝牙技术最初主要是为消费类电子应用而设计的,在设计协议栈时考虑了对其他应用层协议的支持,如RFCOMM是基于ETSI 07.10规范的串行仿真协议,还有电话控制协议等,其协议栈为通用协议栈[1]。考虑到控制网络中传送的信息多为短帧信息,且信息交换频繁的特点,同时为了使控制网络的通信协议简单实用,工作效率高,缩短系统响应时间,提高通信的实时性和时间确定性。因此,我们在综合分析控制系统的特点和蓝牙协议栈的基础上,以及在EPA中蓝牙接入协议参考模型的基础上,提出并实现了一种应用模型。该应用模型的体系结构如下图1所示。
   
    图1中的粗实线代表蓝牙主机控制器接口(HCI),HCI提供了一种访问蓝牙硬件能力的通用接口,HCI固件通过访问基带命令、链路管理器命令、硬件状态寄存器、控制寄存器以及事件寄存器实现对蓝牙硬件的HCI命令。
    
    通信过程如下:通过调用HCI指令建立数据链路层连接,当连接建立成功后,把获取的IP分组包封装成HCI数据帧,通过蓝牙物理层传输至EPA网络蓝牙接入点BEPA,BEPA收到后,解包,取出IP分组包,再采用802.3协议封装成局域网数据帧,最后通过网卡发送出去。


图1  EPA中蓝牙通信协议的应用模型

    3、EPA蓝牙接入点的设计
 
    针对以上的EPA蓝牙接入的应用模型,本文采用SOPC技术、现场总线技术设计了一种适用于EPA工业以太网的蓝牙无线接入方案。该方案的核心部分即采用NIOS II软核作为处理器。使用NIOS II软核处理器替代通用处理器(如ARM、单片机)[2],不仅简化了电路结构,而且增强了编程的灵活性,节省了硬件资源,而且FPGA的现场可编程的特性有利于系统的软件和硬件升级。本设计主要包括EPA协议栈处理部分和蓝牙协议处理部分,前者由NIOS II处理器完成,后者由BCM04模块实现,两者之间通过UART串口相连。以下分别从硬件设计方案和软件设计方案进行详细描述。

    3.1 硬件系统设计

    图2是EPA蓝牙接入点的硬件系统结构框图。整个设计的核心电路用一片高端系统级FPGA实现,可将嵌入式处理器、存储器、逻辑单元以及高性能I/O集成在一个芯片中,采用自顶向下的设计方法,对整个系统进行方案设计和功能划分,用硬件描述语言HDL完成系统行为设计,最后通过综合器和适配器生成最终的目标器件。在设计中FPGA采用了Altera公司的Cyclone系列的EP1C12Q240C8芯片,内嵌32位RISC软核处理器NIOS II。

    在进行硬件设计时分两步完成,首先是根据需要设计EP1C12Q240C8芯片的外围电路,包括网络接口单元、存储器单元、串口通信单元、复位电路、JTAG、时钟电路、电源电路等。其次,利用Altera公司提供的Quartus II开发软件对FPGA内嵌的NIOS II软核及其相关接口进行设计。


 
图2 EPA蓝牙接入点的硬件结构框图

    3.1.1 网络接口单元

    以太网接口芯片采用了SMSC公司专门用于嵌入式产品的LAN91C111快速以太网控制器。该芯片内部同时集成了以太网介质访问控制器(MAC)及物理层收发器(PHY),支持10/100M全双工传输模式、可以方便地与各种体系得CPU连接。本设计中使用了异步总线接口模式,并与FLASH共用地址线和数据线,通过FPGA上的适配模块连接到Avalon片内总线。

    3.1.2 存储器单元
 
    由于存储操作系统内核、EPA协议栈、程序数据等的需要,本系统使用了一片型号为AM29LV320D的FLASH芯片。该芯片由AMD公司推出,容量为4MB,支持CFI接口,其与Avalon总线的连接需要FPGA内部的总线适配模块进行时序匹配。SDRAM用于存储运行期的程序代码和数据,HY57V641620芯片为现代公司推出的容量达8MB的SDRAM,由于该芯片端口的宽度可达32位,因此系统中使用单芯片即可。SDRAM读写时序比较复杂,需要在FPGA中集成专用的SDRAM控制器IP核与其对接。

    3.1.3 蓝牙模块
 
    蓝牙模块的实现采用了CSR公司的单芯片BCM04。BCM04内嵌BlueCore04芯片,并提供SPI、UART/USB、PIO、PCM接口。单芯片蓝牙无线和基带集成电路BlueCore04内有16位RISC微控制器,可作为一个简单的嵌入式控制器及蓝牙链路控制器,可运行蓝牙软件协议栈及高层应用程序。该模块的需要与NIOS II内部的UART串口IP核连接以实现与处理器的无线通信功能

    3.1.4 FPGA内部IP核
 
    为完成与上述3个外部单元的连接,还必须在EP1C12Q240C8芯片内部定制相关的接口电路。其中包括一个定时器,为EPA协议栈提供本地时钟,该时钟必须与EPA网络中的主时钟同步;两个UART串行接口控制器,其中一个与蓝牙模块连接,实现蓝牙数据的收发,另一个需要外接电平转换芯片后与上位机连接实现上位机的监控功能;一个以太网接口控制器,实现对LAN91C111的接口控制;此外还包括 SDRAM和FLASH接口等部件。所有的部件都由Altera公司以IP核的方式提供,可方便复用。系统部件及其功能见图3所示。NIOS II和所有部件通过Avalon总线连接在一起,构成基于Avalon总线的SOPC系统架构。Avalon总线是Altera公司开发的片上总线,是一种简单的总线体系结构,用来将处理器和周边设备集成到SOPC中,并规定了主设备和从端口的端口连接方式的时序关系。[page]


图3  系统部件及结构框图

    3.2 软件系统设计
 
    图4为EPA蓝牙接入点上的软件结构框图,该结构框图中的协议栈部分参照《用于工业测量与控制系统的EPA系统结构与通信规范》进行设计,并在接入点中实现。由于在嵌入式系统中资源有限很难开发完整的EPA协议栈,所以本接入点中对EPA通信协议栈做了裁剪。如图4所示,基于SOPC的系统设计主要分为3层,最底层构成整个系统的硬件平台,提供软件的运行平台及通讯接口。第2层是操作系统UC/OS II,该操作系统是一个基于抢占式的实时多任务内核,可固化、可裁减,具有高稳定性和可靠性[3]。这一层提供任务调度以及接口驱动,同时通过硬件中断实现系统对外界的通信请求实时响应最上层算法的实现。第3层为应用程序层,该层负责加载EPA协议栈。


图4 EPA蓝牙接入点软件结构框图

    3.2.1 NIOS II驱动开发
 
    此部分工作主要是针对本系统的特定硬件进行移植并编写所需的各种驱动。HAL即硬件抽象层,是NIOS II开发套件的一部分,由Altera公司提供,它封装了系统中硬件操作的相关细节,驱动程序也作为它的一部分。HAL共抽象了六种器件模型,包括字符模式器件、定时器件、文件子系统、以太网器件、DMA器件和Flash器件,并为每个器件提供一系列的统一的初始化函数和访问函数接口,通过这种方式,HAL向上一层提供了一个类POSIX的API接口,即硬件抽象层应用界面。针对NIOS II的软件开发,其实是建立在HAL之上,而非直接面向NIOS II硬件本身。

    3.2.2 蓝牙协议和EPA协议的转换
 
    EPA协议栈加载在UC/OS II操作系统之上,其物理层和数据链路层通过LAN91C111网络控制芯片完成,而网络层和数据传输层由LWIP协议栈完成(LWIP协议栈实现了IP、ARP、UDP、ICMP等协议),然后在LWIP协议栈之上加载了EPA应用层,在EPA应用层上实现了EPA套接字映射实体、EPA系统管理实体、EPA应用访问实体、EPA管理信息库。

    当EPA接入点启动后,首先需要初始化相关硬件设备驱动,包括UART串口驱动,设置与蓝牙模块的通信的波特率值38400bps,初始化串口接收和发送缓冲区,向蓝牙模块写入初始化的HCI指令[4];其次是网络接口驱动,写入LAN91C111的相关寄存器值,初始化网口接收和发送缓冲区,并且通过lwip协议栈中提供的sys_thread_new()函数创建以太网接收和发送报文进程。当蓝牙模块接收到无线数据时,由蓝牙模块解析出该报文,并把该报文存放在串口接收缓冲区中,然后调用EPA应用层的处理函数,判断该报文是属于设备声明报文还是数据分发报文,并且将该报文封装成EPA报文从以太网接口发送出去。

    4、测试系统
 
    EPA蓝牙接入点能够同时接入7个现场蓝牙设备所采集到的数据[5],而在我们的测试系统中只接入了一个蓝牙现场设备即图5中第一行所显示的EPA蓝牙阀门定位器,EPA蓝牙阀门定位器每隔0.5秒将采集到的阀门值通过蓝牙报文传送给EPA蓝牙接入点,然后经由蓝牙接入点进行报文格式转换后,以EPA报文格式发送给负责监控的上位机。从图中可以看到阀门定位器的当前值,测试表明该接入点运行良好,能够很好的完成网段互联功能。


图5 上位机通过EPA蓝牙接入点监测EPA阀门定位器(蓝牙)的实时数据

    5、结论
 
    本文设计的基于NIOS II软核EPA蓝牙接入点目前已经完成了初步的调试和测试工作,测试表明该接入点运行稳定,能够完成正常的无线通信及以太网通信功能。相比于以往的开发方案采用SOPC技术缩短了开发周期节约了硬件资源,并且为以后的系统的软硬件升级提供了很大的空间。 


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

热门文章 更多
串行数据线的一个总结和概述