基于开源处理器的传感器节点SOPC设计*

2016-06-13 08:43张国勇
传感器与微系统 2016年3期

张 盛, 张国勇, 鄢 傲

(1.清华大学 电子工程系,北京 100084;2.清华大学 深圳研究生院,广东 深圳 518055)



基于开源处理器的传感器节点SOPC设计*

张盛2, 张国勇1, 鄢傲1

(1.清华大学 电子工程系,北京 100084;2.清华大学 深圳研究生院,广东 深圳 518055)

摘要:采用软硬件协同设计的方法,基于开源处理器OpenRISC1200设计一种面向无线HART网络应用的传感器节点可编程片上系统(SOPC),实现节点任务处理等基本功能。整个硬件系统首先进行功能仿真,然后使用ISE工具综合、评估了整体性能,最后下载到FPGA中进行软件开发与验证。针对实际应用,移植了实时操作系统RAW-OS和无线HART协议栈,编写相应的程序完成测试,结果表明:所设计的节点片上系统(SOC)功能稳定可靠。

关键词:软硬件协同设计; 开源处理器; 可编程片上系统; RAW-OS; 无线HART

0引言

无线传感器网络是一种分布式信息网络,广泛应用于环境监测、军事国防、医疗健康、智能家居以及其他商业应用领域[1]。通信协议是无线传感器网络最重要的软件组成部分,无线HART协议是一种新发展起来的无线传感器网络通信协议,在低功耗、可靠性以及安全性等方面相比于现有的其它协议有着明显的优势,具有广阔的发展和应用前景[2]。然而,市场上针对无线HART网络应用的传感器节点设备比较少见,随着其需求扩张,专门针对该协议定制无线传感器节点设备是十分必要的。

采用可编程片上系统(SOPC)的设计方法,利用 IP复用与软硬件协同技术,将软核集成在一个片上系统,已成为电子设计的主流方法。SOPC设计最重要的部分是微处理器内核,嵌入式系统通常采用32位RISC架构的微处理器,如,ARM,MPIS等,但这类商业IP需要昂贵的知识产权费[3]。OpenRISC1200是一种完全开放的处理器内核,并支持开源总线WishBone,具有完善的软件开发工具,其性能表现十分良好,可以满足一般嵌入式电子设备设计的需求,基于该开源IP设计面向无线HART网络的传感器节点并实现实际应用是完全可能的。

1传感器节点SOPC总体设计

传感器节点SOPC的总体方案如图1所示,分为硬件整体和软件分层结构两个部分。其中硬件整体是以OpenRISC1200微处理器为核心,通过WishBone总线连接SDRAM,FLASH等存储器控制单元以及UART,I2C,GPIO,SPI接口单元模块,JTAG模块与OpenRISC1200处理器内部的Debug单元连接,用于软件调试,同时外围接口可以扩展来满足实际应用的需要。软件结构最下层是接口驱动程序,它负责外围设备的中断响应、初始化等功能;中间层为实时操作系统RAW-OS和无线HART协议栈,实时操作系统RAW-OS为网络协议栈和其它应用程序提供任务管理与调度等服务,无线HART协议栈实现传感器节点组网与通信等功能,为上层应用提供应用程序接口子函数;软件最上层是应用层,可以基于下层提供的软件服务来编写相应的传感器节点应用程序,实现传感器节点的数据采集、计算及转发等功能。

图1 传感器节点SOPC的总体方案Fig 1 Overall scheme of sensor node SOPC

2系统硬件设计

2.1硬件整体架构

传感器节点SOPC硬件结构如图2,内核采用了OpenRISC1200微处理器,继承了其所有功能特性,具有强大的数据处理能力,并具有多种低功耗工作模式。片上集成了JTAG接口单元,可以在线调试应用程序。同时集成存储控制单元,可以扩展SDRAM与FLASH存储,最大支持1MB的片内数据存储空间和4MB的片上程序存储空间,这对于一般的嵌入式传感器芯片来说是完全足够的。外设接口SPI可外接无线射频芯片,I2C接口可以外接传感器采集芯片,UART接口与PC进行串口通信,GPIO接口用于常用的扩展功能。该传感器节点SOPC还可通过WishBone总线扩展其他外设接口或模块,具有良好的可扩展性能。

图2 系统硬件结构Fig 2 Hardware structure of system

2.2OpenRISC1200处理器

OpenRISC1200是一种32位的标量RISC处理器,支持分开的数据和指令高速缓存,采用了五级流水线,并加入了延迟槽技术来保证流水线尽可能地不间断支持虚拟内存管理,总线接口符合WishBone协议,CPU内核具有4G的寻址空间,并带有DSP功能,采用OR32指令集,而且支持用户自定义指令[4]。

OpenRISC1200可以自行配置,本设计使用了虚拟存储管理和高速缓存单元,Icache和Dcache大小分别为32 kB,使用并行乘法和串行除法,并实现FPU单元,处理器运行频率为200 MHz。

2.3WishBone系统总线

WishBone总线协议是开放式的(SOC)互联规范,OpenRISC1200和许多开源IP都采用WishBone总线标准,该总线使用十分灵活,比较适合于轻量级系统芯片设计[5]。本设计采用了WishBone总线结构的一种,即互联矩阵WB_CONMAX模块,最多可连接8个主接口和16个从接口,内部含有总线仲裁器,并支持多对主从设备同时进行通信。

硬件系统根据实际的需求,采用了分开的3条总线结构,包括片内存储器总线、片外存储器总线和外部接口总线,如图3所示。片内存储器与片外存储器采用分开的总线仲裁器,使得系统初始化效率明显提高,而分开的外设与存储总线保证了各自对不同运行速率的需求,外设总线采用了两重译码结构。仲裁器是采取基于FIFO的访问优先级策略,主设备按照队列方式依次使用总线。

图3 系统总线逻辑结构Fig 3 Logic structure of system bus

2.4从设备外围模块

系统从设备包括两个存储控制器和4个外部接口模块,存储控制器可以连接SSRAM,SDRAM,Flash等,相应的地址映射如表1所示,它们都支持WishBone总线协议。

UART串口工作模式为8位数据位与1位停止位,不设置奇偶校验位,其中波特率被设置为9600 Baud;SPI模块使用主从工作模式;GPIO时序较为简单,包括与WishBone接口相关的信号以及一个从设备双向端口信号线,最大支持32位信号线扩展;I2C接口只有2条时序SCL和SDA,它们通过I2C接口内部模块与WishBone总线相连接,并可以形成多主从结构。

表1 系统从设备地址映射表

3系统软件设计

3.1软件开发平台

本设计软件开发在Linux环境下进行,FPGA开发板使用Virtex—6 ML605,整个嵌入式软件开发平台如图4所示。PC端包括GDB和Advanced JTAG Bridge,FPGA开发板被配置成传感器节点SOPC,存储控制器连接片上ROM/RAM,GPIO接口与开发板上的LED指示灯相连,SPI口外接Flash单元,用来固化程序,UART接口与PC端的串口连接在一起,打印调试信息到PC终端,I2C接口在扩展传感器节点功能上可以作为各种传感器芯片的接口单元。

图4 系统软件开发平台Fig 4 Development platform of system software

3.2实时操作系统RAW-OS

RAW-OS是一种实时性强的操作系统,支持多任务,内核大小只有3 kB左右,编码十分规范,可移植性很强[6],适合于无线传感器网络应用。与移植相关的文件主要包括:port.c编写了任务建立时的堆栈初始化函数stack_init()和存储CPU的SR寄存器状态值的sr_restore()函数;reset.S采用汇编语言编写启动程序,并包括与OpenRISC1200 CPU硬件架构相关的4个移植函数,即任务启动函数start_first_task(),任务切换函数task_switch(),时钟中断函数Tick_ISR()以及用户中断函数Usr_ISR();port.h文件主要定义了相关的宏,并声明了reset.S中的4个汇编函数等;raw_cpu.h声明了OpenRISC1200状态寄存器和port.c文件中相关的宏定义;raw_type.h根据OpenRISC1200 CPU架构重新定义软件数据类型。

3.3无线HART协议栈

传感器节点SOPC针对无线HART网络应用,必须支持协议栈的移植。目前,无线HART尚无开源的协议栈源码,本设计所移植的协议栈由课题组人员共同开发。依据无线HART协议栈五层架构模型,分别编写代码实现各层功能,主要包括一个协议栈主程序以及其它各层的实现程序,主程序采用状态机形式调用各层子函数,实现节点通信功能等,其软件架构如图5所示。

图5 无线HART协议栈的软件架构Fig 5 Software architecture of wireless HART protocol stack

3.4应用测试

为了测试RAW-OS能否正常运行,编写应用测试程序,模拟了单节点主从消息通信模型,首先分别创建从节点任务、主节点任务以及任务队列,然后等待任务队列准备好之后,从节点向任务队列发生消息,发送成功之后再挂起,最后主节点从任务队列中接收消息,并显示消息内容。主函数源程序的流程图如图6所示,其中,应用程序初始化函数实现了主从节点任务和任务队列的创建。

图6 主函数流程图Fig 6 Flowchart of main function

4系统整体验证与测试

4.1节点功能仿真

仿真测试平台通过实例化传感器节点SOPC而建立,存储器通过加载二进制文件来完成初始化。在测试程序中,CPU通过WishBone总线读取片上RAM中的指令和数据完成相应操作,GPIO接口信号输出至SW和LEDR,同时通过UART接口输出字符串“Hello World!”,并以回车键为结束符,仿真波形如图7。仿真结果为GPIO完成输出时刻,输出32位数据0x00001234,此时UART输出8′b00001101对于ASICII码CR,即回车键,字符串“Hello World!”已经打印结束。

图7 SOPC功能仿真结果Fig 7 Simulation result of SOPC function

4.2FPGA硬件验证

经过综合,得到传感器节点SOPC整体所消耗的FPGA硬件资源情况,如图8所示,可知一共占用了15 701个逻辑单元,资源使用率为10 %左右,整个节点SOPC系统集成了多个模块,结构较为复杂,而硬件资源使用情况比较理想,部分模块还可以根据实际应用需求进行优化与裁剪来减少芯片面积。

图8 FPGA硬件资源消耗情况Fig 8 Hardware resource consumption of FPGA

4.3系统软件测试

软件测试程序通过SPI口烧写至Flash中,断电后重启FPGA开发板,FPGA首先自动配置SOPC,处理器OpenRISC1200通过bootrom.S文件指令将外部Flash中的程序复制到片上SDRAM中,处理器再从SDRAM中取指并运行。测试打印信息如图9所示,通过串口工具picocom显示,可以看出程序在RAW-OS操作系统的支持下正常运行,实现了多任务调度,说明节点SOPC的功能是正常稳定的。

图9 应用程序测试信息Fig 9 Information of application program testing

5结论

本文基于开源处理器OpenRISC1200,采用三条WishBone总线,设计了一种面向无线HART网络应用的传感器节点SOPC的硬件架构,并移植了实时操作系统RAW-OS与协议栈。经测试与验证表明:所设计的节点功能正常,可以满足无线HART网络节点应用需求。其中,硬件架构与软件操作系统可以根据实际应用进行适当修改和裁剪,系统具有较强的灵活性和可扩展性。

参考文献:

[1]Akyildiz I F,Su W,Sankarasubramaniam Y,et al.Wireless sensor networks:A survey[J].Computer Networks,2002,38(4):393-422.

[2]Lennvall T,Svensson S,Hekland F.A comparison of wireless HART and Zig Bee for industrial applications[C]∥IEEE International Workshop on Factory Communication Systems,IEEE,2008:85-88.

[3]Paulsen L.Cortex:Open source core financial processor[D].Corvallis:Oregon State University,2009:1-51.

[4]OpenCores.OpenRISC1000 architecture manual [EB/OL].[2010—03—10]http:∥opencores.org/or1k/Main_Page.

[5]Bolado M,Posadas H,Castillo J,et al.Platform-based on open source cores for industrial applications[C]∥Design Automation & Test in Europe Conference,2004:21014.

[6]Jorya_txj,高效实时操作系统设计[EB/OL].[2014—04—12]http:∥www.raw-os.org/.

SOPC design of sensor node based on open source processor*

ZHANG Sheng2, ZHANG Guo-yong1, YAN Ao1

(1.Department of Electronic Engineering,Tsinghua University,Beijing 100084,China;2.Graduate School at Shenzhen,Tsinghua University,Shenzhen 518055,China)

Abstract:System on programmable chip (SOPC) of sensor node for wireless HART network is designed based on open source microprocessor OpenRISC1200,which adopts the method of hardware/software co-design.It can implement basic function of node task processing and others.The whole hardware system is simulated firstly.Then use ISE tools to synthesize it and evaluate the overall performance,at last download to FPGA for software development and validation.For practical applications,real-time operating system RAW-OS and wireless HART protocol are ported,and programs are compiled to complete the test,the result shows that the desiged node system on chip (SOC) is stable and reliable in function.

Key words:hardware/software co-design; open source processor; system on programmable chip(SOPC); RAW-OS; wireless HART

DOI:10.13873/J.1000—9787(2016)03—0111—04

收稿日期:2015—05—29

*基金项目:国家科技重大专项资助项目(2011ZX03004—001—01);新疆维吾尔自治区科技计划资助项目(201312107)

中图分类号:TP 212

文献标识码:B

文章编号:1000—9787(2016)03—0111—04

作者简介:

张盛(1975-),男,重庆人,博士,副教授,硕士研究生导师,研究方向为SOC芯片设计、无线传感器网络等。

张国勇,通讯作者,E—mail:zhangguoyong12@mails.tsinghua.edu.cn。