2024年6月3日发(作者:)
2012年
仪表技术与传感器
2012
第2期
Instrument Technique and Sensor
No.2
基于MicroBlaze的加速度采集系统
刘占军,云中华,彭汪昆,白天蕊
(西南交通大学信息科学与技术学院,四川成都610031)
摘要:在FPGA开发平台上,根据需求分析来配置MicroBlaze微处理器,并对微处理器与外围电路的接口进行了研究。
使用c语言模拟串行总线I C,来完成FPGA与加速度之间的数据传输和控制;同时模拟串行总线SPI,来完成FPGA与语
音模块之间的数据通信;并通过点阵图形液晶显示模块实现人机交互。最后经过实验测试证明三轴加速度数据的实时采
集和处理效果良好。
关键词:软核处理器;加速度;串行总线;数据采集
中图分类号:TP36 文献标识码:A 文章编号:1002—1841(2012)02—0069—03
Acceleration Gathering System Based on MicroBlaze
LIU Zhan ̄un,YUN Zhong・hua,PENG Wang—kun,BAI Tian—uri
(School of Information Science&Technology,Southwest Jiaotong University,Chengdu 610031,China)
Abstract:The MicroBlaze microprocessor was configured according to the requirement analysis.The interface was studied be—
tween microprocessor and peripheral circuits in the platform of FPGA(Field Programmable Gate Array).The data between FPGA
and the module of acceleration acquisition was transmitted and controlled by the serial bus of Iz C which was simulated by the lan-
ugage of C.At the same time,the data between FPGA and the module of audio acquisition was transmitted by the serial bus of SPI.
And the interaction of human—computer was implemented by the module of LCD.At last,the data of the three—axis acceleration was
acquisited in real time,and the result did correspond with our preliminary design.
Key words:microBlaze;acceleration;serial bus;data acquisition
0引言
寄存器程序指针和处理器状态寄存器、1个ALU单元、1个移位
传统的数据采集系统中,通常使用单片机作为处理器,若
单元和两级中断响应单元等基本模块,还可具有3/5级流水
在复杂的系统中,往往由于处理速度受到限制,以及资源较少
线、桶形移位器、内存管理/内存保护单元、浮点单元、高速缓
等因素,造成系统实时性较差,且电路设计较为繁琐,给日后的 存、异常处理和调试逻辑等可根据性能需求和逻辑区域成本任
升级造成不便。而采用FPGA技术设计的产品其硬件可定制, 意裁剪的高级特性,极大地扩展了MicroBlaze的应用范围。图
易于升级,可靠性高,开发周期短。该设计利用32位MicroB—
1为MicroBlaze软核的内部功能框图。
laze软核,结合Spartan一3E Nexys2开发板,对MMA7455L加速
度传感器的三轴六向进行了数据采集,并利用VS1003模块进
可 编 加/减
指 /L 程 、
移位,
乘/
逻辑 —
加 —v/ 数
行MP3语音提示,最后将采集到的加速度数据经过二进制补码
一 计 据
到十进制的转换,再通过均值算法处理后在液晶屏幕上进行显
器 — l侧
示,以及MP3的控制显示。
夔 l
接
指 』今
译
/ 接
总 线
1微处理器软核MieroBlaze
口 指 码 32×32位 \ 口
—
—
令 E:> 寄存器
在对基于MicroBlaze软核的系统设计中,包括硬件系统和
/ 缓 —
冲 — /
软件系统的构建,其中硬件系统由微处理器硬件规范(MHS)文
件和微处理器外围设备描述(MPD)文件定义,包括处理器类
图1 MicroBlaze功能框图
型、总线结构、外围设备、连接方式、中断处理和地址空间等;软
1.2基于MicroBlaze的系统开发流程
件系统由微处理器软件规范(MSS)文件定义,主要包括当前平
基于MicroBlaze软核的系统开发流程主要包括以下步骤:
台FPGA设计的软件库、配置信息、标准输入输出设备、各模块
首先搭建底层的硬件平台,包括设置处理器类型,外围设备的
驱动程序和文件系统等。
连接方式以及总线结构等;第二步在构建起的硬件平台上编写
1.1 MicroBlaze的体系结构
软件应用程序,包括应用程序代码、配置信息以及驱动程序等;
MicroBlaze软核内部采用RISC架构,以及哈佛结构的32
最后将生成的硬件比特流配置文件和软件的可执行文件进行
位指令和数据总线,内部有32个通用寄存器R0~R3、2个特殊
合并形成最终的下载文件,可根据需要选择不同的配置方式。
其软硬件开发流程如图2所示。
2硬件电路设计
收稿日期:2011—06—25收修改稿日期:2011—11—20
该设计在Nexys2电路开发平台下,利用MMA7455L加速
70 Instrument Technique and Sensor Feb.2012
硬件平台设计流程 软件程序设计流程
利用向导进行
硬件系统配置
』
产生硬件网表
I
生成硬件网表
图2 MicroBlaze微处理器软硬件开发流程
度传感器采集数据,由FPGA进行数据的处理,转换成相应的
十进制字符,方便人机交互,同时可根据不同的配置播放语音
提示,当用户按键,或者检测到加速度值达到一定的上限,可实
现播放语音提示。
2.1 MMA7455L加速度信号采集模块
MMA7455L是一款数字输出、低功耗、紧凑型电容式微机
械三轴加速度计,适用于手机或个人设备中的运动检测。设计
中加速度信号采集模块采用串行总线l C接口与FPGA进行通
讯,其接口电路如图3所示,数据线SDA和时钟线SCL两根线,
用来数据的传输和加速度传感器的控制;并通过一个4.7 kft
的上拉电阻连接到电源电压,当总线空闲时,这两条线路将被
置为高电平,可实现线与功能。
—r Dvdd IAddO
—一..苫T苫i上i .
. ,..
●..一 GND舞
cs
量 N
SPARTAN一3E
EXYS2
FPGA
《
皇
Avdd皇SDA Jl3
一..苫i..上i—. 1厂.~ FG ND SCL J Ml8
图3加速度数据采集连接图
2.2语音提示与人机交互模块
语音提示与人机交互模块采用VS1003 MP3音频解码芯片
和12864液晶显示模块,其接口电路如图4所示。
VS1003是单片MP3/WMA/MIDI音频解码器和ADPCM编
码器。设计中,其数据传输采用SPI串行总线。其中串行总线
SPI包括:串行输入sI、串行输出s0和串行总线时钟SCK,以及
其他所需的控制,包括数据请求DREQ、数据片选XDCS、片选
输入XCS和异步复位SRSET等。
FYD12864是一种具有4位/8位并行、2线或3线串行多
种接口方式,内部含有国标一级、二级简体中文字库的点阵图
形液晶显示模块;设计中,采用8位并行接口,其三态数据线为
DB0~DB7,复位端Rs,并串EI选择位PSB,数据读写控制位R/
w,分别连接在FPGA的扩展端1:3 L15一U18上构成系统全中
文人机交互界面。
NEXY¥2S
VS1003 PARTAN一3E FYD128640402B
U5 RS
SO J16
lⅡ2
SCK Gl3
DREQ H16 FPGA Ll7 SCLK
M15 PSB
XDCS Hl5
Kl3 RESET
F14
丽 G16 M13--U18 DB0~7
图4语音提示及字符显示连接图
3软件设计实现
该设计在EDK开发环境下,使用XILINX C语言编写程
序,大大方便了用户的程序设计,提高了系统开发效率。其中
软件设计的重点是加速度传感器、VSIO03解码器在FPGA系统
中的驱动编写,以及对采集的数据进行处理后的结果在
FYD12864液晶上的显示。
3.1系统软件流程
系统的主要流程如图5所示,首先是对系统的初始化,包
括GPIO端口的初始化,设置输入输出方向,加速度传感器的工
作模式、量程选择和起始位置的自校正以及语音提示模块和字
符显示模块的初始化设置;其次是MMA7455L加速度传感器的
数据采集,通过FPGA的相应处理后,根据配置要求自动进行
语音提示的判断,若需要,则VSIO03模块进行语音播放,并更
新液晶显示模块的数据,若不需要,则直接更新液晶显示模块
数据,实现人机交互。在整个系统流程中,用户可通过按键中
断控制运行状态,同时,为方便其他研究,可直接通过串口线与
上位机进行数据传输。
图5主程序设计流程
3.2端口操作命令
在使用C语言编写端El操作程序时,需要结合系统生成的
库函数,其中GPIO常用操作函数如下所示:
对特定GPIO通道的初始化操作:
Int XGpio
Initialize(XGpio¥InstancePtr,u1 6 DeviceId)
对特定GPIO通道的方向设置操作:
Void XGpio
—
SetDataDirection(XGpio InstancePtr,unsigned
第2期 刘占军等:基于MicroBlaze的加速度采集系统 71
Channel,u32 DirectionMask)
对特定GPIO通道的寄存器值读取操作:
u32 XGpio
DiscreteRead(XGpio InstancePtr,unsigned
Channe1)
对特定GPIO通道的离散寄存器置位操作:
Void XGpio
—
DisereteSet(XGpio¥InstancePtr,unsigned
Channel,u32 Mask)
对特定GPIO通道的离散寄存器清零操作:
Void XGpio
—
DiscreteClear(XGpio InstancePtr,unsigned
Channel,u32 Mask)
3.3串行总线I C
用于内部Ic通信的双向两线串行总线I c,以其接口简
单、使用灵活等突出优点在嵌入式系统中获得了广泛的应用。
其数据传输时序如图6所示,当时钟线SCL为高电平时,数据
线SDA的下降沿产生起始信号;当时钟线SCL为高电平时,数
据线SDA的上升沿产生停止信号;SDA线上的数据必须在时钟
线SCL的高电平期间保持稳定,数据线SDA的状态只有在SCL
低电平期间上才能改变。
SD A  ̄5 _\/rI__l\ ’
.
完成一 端中
风风 风m
确认 确认
图6 i2c数据传输时序
根据I C数据传输时序,在MicroBlaze平台上写出模拟开
始传输及从I c发送8位数据命令:
Void IIC
—
Start(void)//开始传输命令
{
XGpio
_
DiscreteSet(&ACC—DATA,MMA—CHANNEL,0xO0000002);
//数据线置高
XGpio
—
DiscreteSet(&ACC—CLK,MMA—CHANNEL,0x00000001);
//时钟线置高
IICdelay
—
US(Delay2Ous);//延时20us
XGpio
_
DiscreteClear(&ACC—DATA,MMA—CHANNEL,0x00000002);
//数据线置低
llCdelay us(Delayl0us);//延时lOus
XGpio
DiscreteClear(&ACC—CLK,MMA—CHANNEL,0x00000001);
//时钟线置低
IICdelay
_
us(DelaylOus);//延时10us
}
//从12C发送8位数据
void I[C SendByte(VUINT8 sData)
VINT8 i;
for(i=7;i>=0;i一一)
{
if((sData>>i)&0x01)
XGpio
_
DiscreteSet(&ACC—DATA,MMA—CHANNEL,0xO0000002);
//数据线置高
else
XGpio
DiscreteClear(&ACC—DATA,MMA—CHANNEL,OxO0000002);
//数据线置低
//开始发送应答信号
IICdelay
us(Delay5us);//延时5us
XGpio
—
DiscreteSet(&ACC—CLK,MMA—CHANNEL,0x00000001);
//时钟线置高
IICdelay
_
us(Delayl0us);//延时10us
XGpio
DiscreteClear(&ACC—CLK,MMA—CHANNEL,OxO0000001);
//时钟线置低
IICdelay
us(Delay5us);//延时5us
}
}
函数中的延时时间可根据具体应用进行适当调整,其他命
令同样可根据时序要求写出。
3.4系统调试
系统调试包括软件调试和硬件调试,其中在软件开发工具
(Software Development Kit,SDK)下来建立和调试软件应用程
序;使用Debug Configuration Wizard来添加ChipScope核,执行
硬件的验证。对于普通的调试,可以在系统配置时加入串口模
块RS一232,就可以在调试时,利用串口设备进行串口打印输
出,方便用户对程序的调试和运行中间结果的观察。经过测
试,最终设计在实际硬件电路上得到了实现,当4个连续的
LED点亮时表示系统配置成功;当朝某一方向移动加速度传感
器时,相应方向数据产生变化,通过点亮LED的不同组合来反
应移动方向,并将实际加速度值显示于液晶屏幕;当加速度传
感器处于静止状态时,则测量值为相应方向的重力加速度。
4结束语
文中成功应用了32位软核MicroBlaze微处理器,通过软硬
件协同设计极大地方便了系统设计,加快开发过程,实现了FP-
GA与外围电路的不同接口方式。充分利用FPGA的资源,加
入不同的算法,在工业生产中,可应用于对发动机的振动检测、
汽车制动启动检测,地震检测以及工程测振等方面。
参考文献:
[1]Xilinx Inc.Embedded System Tools Reference Manual,2010.
[2]Xilinx Inc.Microblaze Processor Reference Guide Embedded Develop-
ment Kit EDK 12.1,2010.
[3]何宾.数字与片上系统设计教程.北京:清华大学出版社,2010.
[4] 邹小芳,许剑.便携式高速数据采集处理系统.仪表技术与传感
器,2008(3):23—24.
[5]董代洁,郭怀理,曹春雨.基于FPGA的可编程SOC设计.北京:北
京航空航天大学出版社,2006.
[6]薛小刚,葛毅敏.XilinxISE 9.X FPGA/CPLD设计指南.北京:人民
邮电出版社,2007.
作者简介:刘占军(1988一),研士研究生,主要研究方向为基于FPGA
的嵌入式。E—mail:swjtu_liu@qq.con


发布评论