基于NIOS II和FPGA无线小车控制系统的设计本科论文.docx
《基于NIOS II和FPGA无线小车控制系统的设计本科论文.docx》由会员分享,可在线阅读,更多相关《基于NIOS II和FPGA无线小车控制系统的设计本科论文.docx(35页珍藏版)》请在冰豆网上搜索。
基于NIOSII和FPGA无线小车控制系统的设计本科论文
基于NIOSII和FPGA无线小车控制系统的设计
摘要:
本文介绍一种两轮小车机器人控制系统的软硬件实现方法,主控制台以CycloneII系列的EP2C8Q208C8为核心,通过nRF24L01进行无线通讯,来控制以ATmega8为微处理器的两轮小车,可以实现小车按控制平台发送的控制信息来准确运动。
论文所做的主要工作如下:
硬件方面,设计并研制了小车硬件平台(车体及传动模块、各个传感器模块、小车微控制器、nRF24L01通信模块及电机驱动模块等)、无线控制平台(EP2C8Q208C8外围电路、SDRAM、EPCS4、按键、nRF24L01通信模块、TFT触摸屏显示模块等);软件方面,基于SOPC硬件平台的搭建、基于C语言的各个底层模块的软件驱动。
基于NIOSII和FPGA的无线小车控制系统整体在调试及现场实际测试后表明,该系统运行稳定,实现了预期的功能并取得了较好的效果。
关键词:
NIOSII、FPGA、EP2C8Q208C8、ATmega8、nRF24L01、SOPC、TFT
ThedesignofwirelesscarcontrolsystembasedonNIOSIIandFPGA
Abstract:
thispaperintroducesthehardwareandsoftwareimplementation,forakindoftwowheelscarrobotcontrolsystem.ItismainlybecordingtoEP2C8Q208C8ofCycloneⅡseries,itcancommunicatethroughnRF24L01,andcontrolitwithATmega8asmicroprocessor,sothatitcanmoveexactlybytheinformationsfromthecontrollingplatform.
Thepapermainlyincludedthefollowing:
Onthehardware,Idesignanddevelopitshardwareplatform,suchasbodyandtransmissionmodule,eachsensormodule,carmicrocontroller,nRF24L01communicationmoduleandmotordrivingmodule,etc.Theotherhandisthewirelesscontrolplatform,suchasEP2C8Q208C8peripheralcircuit,SDRAM,EPCS4,buttons, nRF24L01communicationmodule,TFTtouchscreendisplaymodule,etc.Onthesoftware,ImakeahardwareofSOPCandeachlayerofsoftwaremoduleofClanguage.
BasedontheNIOSIIandFPGA,throughdebuggingandactualtestingshowedthatitrunsstably,whichachievsexpectedfunctionsandgoodresults.
Keywords:
NIOSIIandFPGA,EP2C8Q208C8,ATmega8,nRF24L01,SOPC,TFT
1绪论
1.1FPGA的发展
纵观数字集成电路的发展历史,经历了从电子管、晶体管、小规模集成电路到大规模集成电路等不同的阶段。
发展到现在,主要有3类电子器件:
存储器、处理器和逻辑器件。
存储器保存随机信息(电子数据表或数据的内容);处理器执行软件指令,以便完成各种任务(运行数据处理程序视频游戏);而逻辑器件可以提供特殊功能(器件之间的通信和系统必须执行的其他所有功能)。
逻辑器件分成两类:
(1)固定的或定制的
(2)可编程的或可变的
其中,固定的或定制的逻辑器件通常称为专用芯片(ASIC)。
ASIC是为了满足特定的用途而设计的芯片,例如MP3解码芯片等。
其优点是通过固化的逻辑功能和大规模的工业化生产,降低了芯片的成本,同时提高了产品的可靠性。
随着集成度的提高,ASIC的物理尺寸也在不断的缩小。
但是,ASIC设计的周期很长,而且投资大,风险高,一旦设计结束后,功能就固化了,以后的升级改版困难比较大。
电子产品的市场正在逐渐细分,为了满足快速产品开发,产生了现场可编程逻辑器件(FPGA)。
自1984年Xilinx公司推出了第一片现场可编程逻辑器件(FPGA)至今,FPGA已经历了20几年的快速发展历程。
特别是近几年来,更是发展迅速。
FPGA的逻辑规模已经从最初的100个可用门发展到现在的1000万个可用门。
FPGA技术之所以具有巨大的市场吸引力,其根本原因在于,FPGA不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、投入少,芯片价格不断下降,FPGA正在越来越多地取代传统上ASIC,特别是在小批量、个性化的产品市场。
1.1.1基于FPGA嵌入式SOPC的发展概况
随着计算机技术的飞速发展,嵌入式系统成为了当今计算机系统领域一个非常活跃的分支。
嵌入式系统被定义为:
以应用为中心,以计算机技术为基础,软硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
正是在这种背景下,随着可编程逻辑器件(PLD)在结构、工艺、功耗、逻辑规模和工作速度上的重大进步,基于FPGA嵌入IP(IntellectualProperty)软核的SOPC(SystemonaProgramableChip)系统迎合了嵌入式系统发展的这种新趋势,Altera公司于2000年最早提出了SOPC技术。
SOPC可以将MCU,DSP和FPGA完美结合,即SOPC=MCU+DSP+FPGA。
它运用IP核技术,将处理器、存储器、定时器、以太网接口、UART、I/O口、DSP等系统设计所需要的功能模块集成到一个FPGA器件上,构建成一个可编程的片上系统,具有灵活的设计方式,可裁减、可扩充,可升级,并具备软硬件在系统可编程的功能。
在可编程器件内,还具有小容量高速RAM资源和足够的可编程逻辑资源,用于实现其它的附加逻辑。
1.1.2以IP核为支撑的SOPC设计
SOPC技术是以IP核技术和超深亚微米技术为支撑的。
其中,IP核是SOC设计的核心。
IP核是一种具有自主知识产权的特定功能电路模块,其有三种不同的表现形式:
软核、固核和硬核。
软核是用硬件描述语言(HDL)方式提交,其性能己通过功能和时序验证[2]。
由于软核不依赖于任何物理实现工艺和实现技术,具有很大的灵活性。
使用者可以方便地将其映射到自己所使用的工艺上,可复用性很高。
硬核以IC版图的形式提交,并经过实际工艺流片验证,提供设计的最终阶段产品—掩模(mask)。
硬核强烈地依赖于某一个特定的实现工艺,而且在具体的物理尺寸,物理形态及性能上具有不可更改性。
固核是由软核发展而来的,以电路网表的形式提交,通常还经过硬件验证或硬件仿真器验证。
对系统级芯片而言,系统规模都是在百万门、千万门甚至上亿门的规模。
对这样规模的芯片设计不能一切从头开始,需要更多地采用己经有的成熟设计。
只有这样才能较快地完成设计,保证设计成功并得到低价的系统级芯片。
由此可见,IP核技术是SOPC设计的关键。
在SOPC的设计中,人们着重
的不再是某个新功能的实现,而是如何去评估、验证和集成多个己经存在的软硬件模块,也就是从以功能设计为基础的传统设计流程转变为以功能组装为基础的全新流程。
在SOPC中还可以嵌入多种实时操作系统,如UC/OS-II。
Altera把UC/OS-II像C标准库一样当做HAL的一个扩展集移植到NiosII处理器上。
所以在NiosII中使用UC/OS-II是非常方便的。
1.2无线遥控技术的发展
无线电元件制造技术在短时间内取得了高速发展。
高密封的半导体晶片,将数千个晶体管的功能集中在一个几平方厘米的元件板上,标志着当今无线电技术和不断发展。
SMD表面贴状技术使电子元件组越来越小型化,并且与承载这些小型元件组的印制板直接焊接。
由于工艺可靠性提高,所有重要的元件组都可集成在一个微型芯片上。
这种永无止境的发展,将给无线电控制技术带来更大的变化。
1.2.1无线遥控自动避扰技术
无线遥控发射/接受系统一般通过单一频点通讯,若频点受到干扰,则通讯无法有效实施。
根据国家无委会的标准规定,在220–420Mhz频段范围内,工业无线遥控系统可使用的频点数量为23个。
由于频率资源有限,若不同厂家的多台遥控机械在同一工作场地(直径500米)内作业时,则不可避免地会出现同频干扰的现象,致使遥控系统无法正常通讯,这种情况对于移动工程机械是致命的弱点。
HBC的多频选择功能解决了这一难题。
具备该功能的无线遥控系统同时具备四个或多个无线电频道。
如果发射机的某一频率被占用或受到干扰时,操作员只需用发射器上选频器的旋转开关选择另一频道,接收机的扫描器则跟踪发射机自动转换所要求的频率,0.5秒内完成转频过程。
按下“启动”按钮重新启动发射机的操作。
1.2.2功能更强大的反馈系统
反馈系统可实现移动机械与发射器之同的联络,实时反映机器所处的运行状况,如:
负荷的重量、电机转速、油温、压力等数据。
这些传感器的模拟信号通过光缆或同轴电缆传递给机器上的无线电接收器,由其转变成数据信号后传递给发射机,显示在发射机的LCD显示屏上。
在部分先进的物料仓库中,吊车司机的发射机装有数据采集模块,操作员可用连接在发射机上的微型键盘或激光扫描器将操作数据(产品批号,件数,时间,存放位置编码等)通过接收器串行接口输送给计算机中心进行数据处理。
车间行车以及类似运输设备,可以用遥控装置的配备的激光扫描器和/或者数据采集器与计算机中心之间联网。
从物料吊起开始,控制系统通过工厂行车上的传感器计算物料的重量,操作员可将负荷重量、品种、数量与订货单进行比较并将结果以及辅助数据(例如:
时间、存放位置)通知计算机中心。
计算机中心根据这些数据进行计算、处理,并决定是否出库还是转库。
1.2.3用于生产计划的管理
将无线电数据传输装置应用于自动化生产及其计划的管理上这在以前还是个梦想。
然而在不久前,有不少成功应用计算机管理和电子数据交换的企业要求把物料运输设备进行自动化控制并将其控制设备的控制信息与工厂计算机控制系统直接联网。
固定式无线电数据传输装置无疑是充当这一环节中的最佳角色(见图)。
可以想象,有关生产情况的信息不仅可以通过反馈模块用操作者的母语在发射器显示器上显示出来,而且操作员能直接通过发射机上的数据采集装置向计算机中心传递生产报告。
固定式无线电数据传输装置的外壳是特别设计制造,可适应与恶劣的使用环境,尤其是适应于远距离野外作业的机械。
1.2.4无线电控制装置的自动程序化和智能功能
在某一固定场地范围内装置的各种无线电控制系统可对某些动作直接反应以替人工对相关机器的操作。
这种新型的无线电控制装置可不理会操作者偶然误动作的输入而相互自行联络并作出反应,同时根据某一程序的“约定”来决定如何反应。
无线电控制装置的智能模块可以“学习”既定的操作方案,并可以“记忆储存”何时执行谁的指令以及所执行的功能种类。
人工智能系统在未来的无线电装置中能储存成串的指令并自动检验和执行。
对于垃圾处理企业的双梁自动起重机来说,大、小车和起升机构的移动是经PLC设置自动调节的、受比例距离传感器和微波雷达测距系统来控制的;抓斗的开/闭是由抓斗的重量传感器和钢丝绳的张力开关来控制的;抓斗作业的重量是通过无线电称重系统来测量、统计的。
在垃圾料斗旁边有一工作间,操作人员在里面可以监控垃圾的抓取和释放过程,必要时,可以干预操作过程。
随着工业无线电控制系统的技术发展和功能完善,其应用范围越来越广泛。
无线电控制装置不但用于各种工业机械的控制,而且被用作数据收集,信息反馈,数据交换,将将成为未来工业自动化生产系统中不可分割的重要组成部分。
随着中国进入WTO时期的到来,无线电遥控装置、电液比例控制阀件、无线电数据反馈系统、无线电精确定位系统、无线电测距系统等高技术产品关税的大幅度减低,这使得国内机械制造业与国外同行在新一代工程机械的开发制造上处在同一起跑线上。
这样使无线电遥控技术及其系统对中国工程机械制造企业产生了巨大的吸引力。
2核心器件介绍
2.1无线收发芯片nRF24L01介绍
nRF24.L01是一款新型单片射频收发器件,工作于2.4GHz~2.5GHzISM频段。
内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。
nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA;接收时,工作电流只有12.3mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。
2.1.1nRF24L01主要特性如下
(1)GFSK调制:
(2)硬件集成OSI链路层;
(3)具有自动应答和自动再发射功能;
(4)片内自动生成报头和CRC校验码;
(5)数据传输率为lMb/s或2Mb/s;
(6)SPI速率为0Mb/s~10Mb/s;
(7)125个频道:
(8)与其他nRF24系列射频器件相兼容;
(9)QFN20引脚4mm×4mm封装;
(10)供电电压为1.9V~3.6V。
2.1.2nRF24L01引脚功能及描述
nRF24L01的封装及引脚排列如图1所示。
各引脚功能如下:
图1引脚封装
(1)CE:
使能发射或接收;
(2)CSN,SCK,MOSI,MISO:
(3)SPI引脚端,微处理器可通过此引脚配置nRF24L01:
(4)IRQ:
中断标志位;
(5)VDD:
电源输入端;
(6)VSS:
电源地:
(7)XC2,XC1:
晶体振荡器引脚;
(8)VDD_PA:
为功率放大器供电,输出为1.8V;
(9)ANT1,ANT2:
天线接口;
(10)IREF:
参考电流输入。
2.1.3工作模式
通过配置寄存器可将nRF241L01配置为发射、接收、空闲及掉电四种工作模式,如表1所示。
模式
PWR_UP
PRIM_RX
CE
FIFO寄存器状态
接收模式
1
1
1
-
发射模式
1
0
1
数据在TX FIFO 寄存器中
发射模式
1
0
1→0
停留在发送模式,直至数据发送完
待机模式2
1
0
1
TX FIFO 为空
待机模式1
1
-
0
无数据传输
掉电
0
-
-
-
表 1
(1)待机模式1主要用于降低电流损耗,在该模式下晶体振荡器仍然是工作的;
(2)待机模式2则是在当FIFO寄存器为空且CE=1时进入此没收;
(3)待机模式下,所有配置字仍然保留。
(4)在掉电模式下电流损耗最小,同时nRF24L01也不工作,但其所有配置寄存器的值仍然保留。
2.1.4工作原理
发射数据时,首先将nRF24L01配置为发射模式:
接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。
如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便在次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。
最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。
接收数据时,首先将nRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。
当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。
若此时自动应答开启,接收方则同时进入发射状态回传应答信号。
最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。
2.1.5配置字
SPI口为同步串行通信接口,最大传输速率为10Mb/s,传输时先传送低位字节,再传送高位字节。
但针对单个字节而言,要先送高位再送低位。
与SPI相关的指令共有8个,使用时这些控制指令由nRF24L01的MOSI输入。
相应的状态和数据信息是从MISO输出给MCU。
nRF24L0l所有的配置字都由配置寄存器定义,这些配置寄存器可通过SPI口访问。
nRF24L01的配置寄存器共有25个,常用的配置寄存器如表2所示。
地址(H)
寄存器名称
功能
00
CONFIG
设置24L01工作模式
01
EN_AA
设置接收通道及自动应答
02
EN_RXADDR
使能接收通道地址
03
SETUP_AW
设置地址宽度
04
SETUP_RETR
设置自动重发数据时间和次数
07
STATUS
状态寄存器,用来判定工作状态
0A~0F
RX_ADDR_P0~P5
设置接收通道地址
10
TX_ADDR
设置接收接点地址
11~16
RX_PW_P0~P5
设置接收通道的有效数据宽度
表2
2.2ATmega8芯片简介
ATmega8系列单片机承袭了AVR系列中AT90所具有的特点,并增加了更多的接口功能,而且在省电性、稳定性、抗干扰性及灵活性方面都更加周全和完善。
ATmega8属于ATmega系列单片机(Atmega16/Atmega32/Atmega64/Atmega128)的一个子集,其内部集成了较大容量的存储器和丰富的硬件接口电路,并且在软件上能有效支持;高级语言及汇编语言。
ATmega8是一款采用低功耗COMS工艺生产的基于AVRRISC(精简指令集)结构的8位单片机。
AVR单片机的核心是将32个工作寄存器和丰富的指令集连接在一起+所有的工作寄存器都与ALU(算术逻辑单元)直接相连,可在一个时钟周期内用一条指令同时访问(读写)2个独立的寄存器。
这种结构可提高代码效率,使得大部分指令的执行时间仅为一个时钟周期,故可达到将近1MIPS/MHz的性能,运行速度比普通单片机高出10倍。
ATmega8的主要性能特点如下:
(1)高性能、低功耗的8位AVR微控制器。
采用先进的RISC精简指令集结构;有130条功能强大的指令,大多数为单周期指令;内含32个8位通用工作寄存器;工作在16MHz时指令处理速度为16MIPS。
(2)片内集成了较大容量的非易失性程序和数据存储器。
8K字节的Flash程序存储器的可擦写次数大于10000次;512个字节E2PROM的擦写次数至少可达100000次;支持在线编程(ISP)和在应用编程(IAP);带有可编程的程序加密位。
(3)丰富强大的外部接口。
带有2个带预分频的8位定时/计数器、1个带预分频的16位定时/计数器;3个PWM通道,可实现任意16位以内相位和频率可调的PWM脉宽调制输出;6通道A/D转换;一个IC串行接口、一个可编程的USART接口、一个支持/从、收/发的SPI同步串行接口;带片内RC振荡器的可编程看门狗定时器;片内模拟比较器。
(4)具有特殊的微控制器性能。
内含可控制的上电复位延时电路和可编程的欠电压检测电路;芯片内部和外部共有18个中断源;5种休眠模式(空闲、ADC噪声抑制、省电、掉电、待命)。
2.3AlteraCycloneII系列FPGA简介
Altera公司推出了新款Cyclone™II器件系列,增强了在低成本FPGA市场的领导地位。
CycloneIIFPGA比上一代成本低30%,逻辑容量多三倍,扩大了第一代Cyclone系列所赢得的业内领先的成功优势。
另外,根据大量设计的基准测试结果,CycloneIIFPGA的成本大约是相竞争的低成本FPGA的一半,而速度快50%以上。
低成本大批量产品的设计者现在拥有独有的容量、价格和性能的组合,及能让可编程逻辑远远超越传统应用的扩充特性。
CycloneII器件采用了TSMC验证的90nm低K介电质工艺制造的成本优化架构,具有业内更多的特性和更大的容量,及最低的单位逻辑单元成本。
消费、工业、汽车、有线和无线通信,和医疗市场的设计师都能享受CycloneII器件系列带来新的和增强的特性包括:
容量-CycloneII器件容量从4,608至68,416个逻辑单元(LE),是第一代Cyclone器件的三倍。
嵌入乘法器–CycloneII器件具有多达150个嵌入18×18乘法器,它非常适合于实现低成本数字信号处理(DSP)应用。
这些乘法器能运行至250MHz,消除了由复杂算法计算所导致的性能瓶颈,能用CycloneII器件作为FPGA协处理器。
嵌入存储器–CycloneII器件包含每块具有4,608比特的M4K存储块,提供高达1.1Mbit的片内存储器,支持多种配置如真双口和单口RAM、ROM和FIFO。
外部存储接口–CycloneII器件是为高速和可靠的数据传输而设计的,能以高达688Mbps的速率同DDR、DDRII和SDRSDRAM器件及QDRIISRAM器件相连接。
I/O标准–CycloneII支持多种单端和差分I/O标准,包括SSTL、HSTL、PCI-X、PCI、LVTTL、LVCMOS、LVDS、mini-LVDS、RSDS和LVPECL。
软核处理器支持–CycloneII器件支持Nios®II系列嵌入式处理器,它具有超凡的性能、低成本和最完整的一套软件开发工具。
在CycloneII器件中实现NiosII嵌入式处理器,能够在仅为0.35美元的逻辑上实现超过100DMIPS的性能。
这是目前市面上成本最低的32位微处理器。
另外,该方案的灵活性是替代独立处理器或硬嵌入式核的最引人瞩目的方案,它们的特性和性能可以会随时间的推移而过时,从而整个系统设计也会最终完结。
EP2C8Q208C8是CycloneII系列中的一员,共有8256个逻辑单元,42万门,2个锁相环,36个M4KRAM位,2个PLL,最多有182个用户I/O。
本设计采用altera公司的CycloneII系列芯片EP2C8Q208C8作为核心处理器设计,CYCLONEII系列芯片可以说是目前市场上性价比最高的芯片,比第一代的EP1C6或者EP1C12等芯片设计上、内部的逻辑资源上都有很大的改进,同时价格也可以接受;虽然altera推出了CYCLONEIII的芯片,但是目前市场上价格不稳定,整体偏高,目前还不是采用!
3硬件电路设计
硬件电路时设计的基础,硬件电路的好坏直接影响到整个系统性能,软件再好,没有一个性能优良的硬件系统作支