作者 杨斌1,2,韩瑞欣3,董苏惠4(1.中科院微电子研讨所,北京 100029;2.中国科学院大学,北京
100049;3.中科院声学所,北京 100190;4.中科院空间中心,北京 100190)
摘要:本项目完结了一种依据CM3内核的SoC,而且运用该SoC完结网络数据获取、温度传感器数据获取及数据显现等功用。在Keil上进行软件开发,经过ST-LINK/V2调试器进行调试,调试进程体系运转正常。在Quartus-II上进行Verilog
HDL的硬件开发规划,并进行IP核的集成,最终将生成的二进制文件下载到FPGA开发渠道。该体系运用AHB总线将CM3内核与片内存储器和GPIO进行衔接,运用APB总线衔接UART、定时器、看门狗等外设。
关键词:FPGA;IP核;Cortex-M3;SoC
0 序言
项目布景与含义
如今,单片机的发展速度特别快,品种越来越多,而关于单片机的挑选首要是依据详细的运用状况来定,在功用、功耗、本钱上做折中。
现在,FPGA的集成度越来越高,价格也越来越廉价,所以能够以较低的本钱来构建专用的片上体系。单片机作为片上体系的一种,能够很简略的在FPGA上完结,而且架构和片上外设都能够依据详细的运用状况随时做出更改,这极大的下降了本钱,也躲避运用通用单片机所带来的危险。综上,在某些范畴,以FPGA作为渠道构建专用片上体系是最合适的挑选,这也是今后单片机运用范畴的发展趋势。研讨SoC的规划办法和工程运用关于未来单片机运用范畴的改造具有深入的含义。
内容及章节组织
本项目完结了一种依据CM3内核的SoC,而且运用该SoC完结网络数据获取、温度传感器数据获取及数据显现等功用。
本文共分为五部分,榜首部分序言简略介绍了本项意图布景及含义。第二部分说明晰本项意图全体结构规划。第三部分介绍了SoC规划的全体思路。第四部分评论了软件开发的大体流程。第五部分对未来项意图方向做出了展望。
1 体系全体结构
1.1体系规划流程剖析
本体系选用的FPGA板卡芯片由Intel
PSG(英特尔可编程解决方案事业部,前身为Altera公司,Altera于2015年被Intel收买)出产,所以需要在Quartus-II专用开发渠道上进行SoC的硬件规划。Keil软件开发渠道界面友爱,功用强大,兼容ARM公司发布的一切内核库,包含本体系运用的CM3内核库,而且其支撑多种硬件调试和下载器,所以在本项目中运用Keil进行软件开发。软件编译成功后生成二进制可履行文件,并经过ST-LINK/V2调试器进行下载及调试,调试进程体系功用正常。CM3内核运用AHB总线与外设衔接,所以该SoC的规划选用AHB总线将内核与片内存储器和GPIO进行衔接,运用APB总线衔接UART、定时器、看门狗等外设,而APB总线上的外设经过AHB-APB总线桥接器与内核进行数据交互与应对。在Cortex-M3
DesignStart Eval开发套件中供给了本体系用到的根本总线外设,运用Verilog
HDL编写了其他组件来完结整个体系的集成。片上体系规划框图如图1所示,功用框图如图2所示。
本项意图功用框图如图2所示。
1.2 模块挑选
依据体系的网络数据获取及室内温度显现等功用要求,本项目挑选特定模块来完结相应功用。网络模块需要从广域网络中获取数据,并将取得的数据传给SoC渠道,该网络模块的默许接口应该是串口,从网络中获取的数据首要是温度数据,数据的传输速率要求不高,尽量挑选价格廉价、低功耗的网络模块。室内温度的获取依赖于温度传感器,本体系关于温度的丈量精度要求不高,所以温度传感器需具有接口简略、价格廉价、功用安稳等特色。为了做到体系数据的可视化,在规划时分考虑增加OLED显现模块,OLED模块挑选具有功耗低、屏幕小、价格廉价等特色的类型。
2 体系硬件规划
2.1 存储器规划
存储器映射
CM3的寻觅空间巨细是4
GB,代码段和数据段在存储空间上是分隔的,外设相关的寄存器也有相应的地址段,内核操作相关的寄存器也占有部分地址空间。本体系选用把程序放到代码区的规划,从而使取指和数据拜访操作运用自己的总线。
CM3只要一个单一固定的存储器映射。在Cortex-M3预界说的存储器地址映射中,Code区的地址从0x00000000到0x1FFFFFFF,本体系运用的地址空间从0x00000000开端,完毕地址是0x0000FFFF,巨细为64KB。内部SRAM区的地址空间从0x20000000到0x3FFFFFFF,本体系运用的地址从0x20000000开端,完毕地址是0x20000FFFF,巨细为64
KB。
该子体系是依据APB总线,内部包含体系用到的大部分外设,内部外设的地址区分见下表1。
2.2 Cortex-M3的结构
Cortex-M3微处理器的内部结构如图3所示。ARM Cortex-M3微处理器包含:处理器核、嵌套向量中止控制器(NVIC)、调试子体系、AHB
LITE总线接口以及衔接这些单元的内部总线体系。
2.2.1 处理器核
处理器核是Cortex-M3最中心的功用部件,它担任对数据进行处理。
本项目Cortex-M3处理器内核选用3级流水线操作。流水线的3级分别是:取指,解码和履行。
2.2.2 嵌套向量中止控制器
专用的
NVIC用于对中止进行办理,而且向处理器核宣布中止恳求信号,包含最多240个中止恳求,以及1个不行屏蔽中止。NVIC是与CPU严密耦合的,它还包含了若干个体系控制寄存器。
2.2.3 总线体系
总线体系用于将Cortex-M3内部的各个功用部件衔接在一起。总线体系包含:①内部总线体系;②处理器核内部的数据通道;③AHB
Lite接口单元。
2.2.4 调试子体系
作为Cortex-M3处理器重要的一部分,调试子体系供给下面的功用。
①办理调试控制、程序断点、以及数据监控点。
②当发生调试事情时,它将处理器核设置为中止状况。此刻,能够在该点剖析处理器的状况,如寄存器值和标志。
2.3 反常处理与中止向量表规划
Cortex-M3在内核水平上搭载了一个反常呼应体系,支撑为数众多的体系反常和外部中止。
向量中止控制器(NVIC)以存储器映射的方法来拜访,除了包含控制寄存器和中止处理的控制逻辑之外,NVIC还包含了MPU的控制寄存器、SysTick定时器以及调试控制。
2.4 地址译码器和多路复用器规划
本体系依据AHB-Lite所构建的Cortex-M3 SoC体系规划包含了地址译码器和多路复用器。
在体系中,来自不同从设备的呼应信号,包含:HRDATA、HREADY和HRESP衔接到多路复用器的输入,依据地址译码器所生成的挑选信号,多路复用器将挑选的从设备呼应信号送给主设备。其间HRDATA[31:0]是来自多路复用器到主设备的读数据,由多路复用器指向主设备;HREADY是来自多路复用器到主设备的预备信号,由多路复用器指向主设备和从设备,当该位为高时,该信号表明到主设备和从前完结传输的所用从设备。
2.5 APB子体系
该APB子体系的顶层是AHB-Lite总线接口,能够与内核的AHB总线进行衔接。子体系内部包含的外设有定时器、UART、双输入定时器、看门狗电路、AHB到APB的桥接器、异步中止信号等。表2为APB体系IRQ分配表。
2.6 时钟和复位电路规划
本体系片上SoC体系首要包含HCLK、PCLK、PCLKG等三个时钟,HCLK时钟首要用于内核的作业时钟以及驱动片内高功用总线上挂载的外设。PCLK时钟首要用于驱动APB子体系内挂载在高功用外设总线上的大部分外设。PCLKG时钟是当子体系内部的外设无任何活动的时分,经过子体系的APBACTIVE信号能够控制该信号的输出,以完结下降功耗的意图。
体系的复位信号有两种,榜首种是体系选用FPGA外部管脚控制体系复位,低电平复位的方法;第二种是体系反常恳求复位,该复位发生在体系程序运转过错或许硬件过错的状况下。
3 软件体系规划
3.1 CMSIS原理及规划
CMSIS供给了规范的软件接口,如库函数。
运用CMSIS后,一切都规范化了,首要体现在以下几点:
一是运用规范化函数拜访NVIC、体系控制块(SCB),以及体系滴答定时器SysTick。
二是运用规范化函数拜访特别寄存器。
三是运用规范化函数拜访特别指令。
四是规范化的体系初始化函数姓名。
3.2 SoC外设驱动规划
如图4所示,规划AHB外设驱动的要求包含以下几点:①为每个外设编写软件驱动程序;②不需要操作体系支撑;③软件驱动程序应该供给根本的功用,用于简化外设的拜访。
3.3 SoC中止寄存器办理
中止分组设置函数,void NVIC_
Configuration()中止装备函数,在这个函数里边只调用了固件库的中止分组装备函数,整个体系的中止分组组别为2。这个函数在体系初始化的时分调用即可,而且永久只需要调用一次,示例如下所示。
void NVIC_Configuration(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置NVIC中止分组2:2位抢占优先级,2位呼应优先级
}
3.4 体系模块及程序规划原理
3.4.1 温度模块
DS18B20与传统的热敏电阻比较,其能够直接读出被测温度而且可依据实践要求经过简略的编程完结9~12位的数字值读数方法。
当DS18B20接收到温度转化指令后,开端发动转化。转化完结后的温度值就以16位带符号扩展的二进制补码方式存储在高速暂存存储器的第1、2字节。单片机可经过单线接口读到该数据,读取时高位在后、低位在前,数据格式以0.0625
℃/LSB方式表明。
3.4.2 显现器模块
OLED显现器是一种由有机分子薄片组成的固态设备,施加电力之后就能发光。OLED能让电子设备发生更亮堂、更明晰的图画,其耗电量小于传统的LED显现屏。
3.4.3 网络模块
网络模块选用CH9121,CH9121 是一款网络串口透传芯片。CH9121内部集成TCP/IP协议栈,可完结网络数据包和串口数据的双向通明传输,具有
TCP CLIENT、TCP SERVER、UDP CLIENT 、UDP SERVER 4 种作业形式,串口波特率最高可支撑到
921600bps,可经过上位机软件或许串口指令轻松装备,方便快捷。
4 定论
在后续的规划进程中,咱们会在体系中增加指纹模块,运用指纹辨认技能能够完结现代智能家居的安防。经过指纹辨认技能能够对用户指纹进行精准辨认,避免未注册陌生人的侵略。一起也会增加摄像头模块,运用摄像头模块进行人脸辨认,能够判别当时收集的人脸头像是否在原有的数据库里,与数据库信息进行比对,来判别是否有不合法闯入。
此外,为了更好地完结智能化,咱们会将居家日子中的各种用电器接入体系中来,经过继电器开关来完结开关中止,这样能够完结长途控制用电器的功用。
参考文献
[1]Cortex-M3威望攻略(中文)手册,2017.
[2]CM3技能参考手册,2017.
[3]DE10-Lite_User_Manual handbook,2017,1.
[4]王永虹,徐炜,等.STM32系列ARM Cortex-M3微控制器原理与实践.北京航空航天大学出版社, 2008.
[5]STM32开发攻略——库函数版别手册,2016.
作者简介:
杨斌 (1994-),男,研讨生,首要从事嵌入式体系开发及信号处理的研讨。
韩瑞欣 (1994-),男,研讨生,首要从事射频RFID的研讨。
董苏惠 (1994-),女,研讨生,首要从事卫星组网通讯的研讨。
本文来源于科技期刊《电子产品世界》2019年第2期第55页,欢迎您写论文时引证,并注明出处