FreeARM7 IP核的微处理器逻辑扩展与验证

发布者:二进制游侠最新更新时间:2011-05-28 关键字:FteeARM7  LPC2101  微处理器  USB 手机看文章 扫描二维码
随时随地手机看文章
1 FreeARM7 IP核简介
    FreeARM微处理器的ARM7系列(简称FreeARM7)首发于www.socvista.com,由Free-arm联合其他ARM爱好者基于ARMv4架构开发而成。整个
IP核代码采用可综合的Verilog HDL描述,接口简单,描述精炼,全部代码不超过2000行。在整体设计上,采用了三级流水线和哈佛结构,全面兼容各种中断和操作指令(除Thumb和协处理器指令)。经过评估可知,该IP核基于FPGA和SMIC工艺库都有很好的实现结果。
    FreeARM7接口定义如表1所列,概括起来可分为4类:
    ◆系统接口,提供系统控制信号;
    ◆中断源,提供ARM架构需要的5个中断信号;
    ◆ROM接口,与提供指令的ROM之间的接口;
    ◆单口RAM接口,与单口RAM和外设之间数据交互的接口。

a.jpg


    其中,单口RAM接口可以实现两类用途:一、挂接单口RAM,使得FreeARM7能够正确地读写数据;二、挂接外设,使得FteeARM7能够正确操作外设。

2 微处理器改进与逻辑扩展
    基于FreeARM7的微处理器改进与逻辑扩展的结构如图1所示。预期的实现目标是:在主机上编写嵌入式程序汇编成机器码后,经过USB 1.1设备控制器传输至双端口RAM中,在微处理器代码下载模式下,代码下载控制逻辑将双端口RAM中的机器代码装载至ROM中,之后启动微处理器正常工作模式,微处理器执行ROM中的嵌入式代码,接收主机通过USB传送来的参数值,并将运行结果通过USB返回至主机。

b.jpg


    基于Cyclone II FPGA具体实现时,ROM、RAM和双端口RAM都是利用Quartus II软件中MegaWizardPlug-In.Manager工具例化相应的存储模块,而其他硬件逻辑的扩展都是以IP核(Verilog描述)的形式出现。[page]

2.1 微处理器lP核改进
    FreeARM7 IP核是微处理器的核心部分,不能直接作为微处理器使用,其原因是数据总线需要读取ROM内的数据、本文选择Philips公司32位ARM7微处理器LPC2101作为原型设计。LPC2101带有适当的存储资源,内嵌2 KB片内静态RAM和8 KB的Flash存储器,且软件可移植性好,工作可靠。参考LPC2101工作原理,当FreeARM7的输出信号ram_addr的最高4位为4'b0时,表示数据总线需要读取ROM的数据。为解决该问题,新增一个wrap文件lpc2101_arm.v完成该功能。它的作用是:当ram_addr[31:28]==4'b0时,该逻辑直接从rom_en、rom_addr、rom_data的接口中读取ROM数据,送入ram rdata。
2.2 USB1.1设备控制器
    本文选用的USB设备控制器是课题组早期项目之一,它是由Opencores网站提供的初级开源版本改进而成,其结构如图2所示。IP核支持低速和全速模式,共有1个控制传输端点(EP0)、7个其他可配置端点,且缺少微处理器也能响应主机对设备的枚举。收发器电路主要完成模/数信号转换,即在OUT事物中将模拟信号D+和D-转换成串行接口引擎模块可识别的数字信号rxd、rxdp和rxdn,在IN事物中将数字信号txdp和
txdn在使能信号txoe的控制下转换成模拟信号D+和D-;串行接口引擎模块主要完成收发包,根据传输方向可分为接收和发送,主要包括总线检测、同步检测、时钟恢复、不归零反向编码和解码、位填充及位去除、数据的串/并转换;协议层包括协议引擎态机、组包、解包、FIFO控制器;端点O控制器主要负责响应主机标准请求;描述符RAM存储了设备的各种描述符;其他端点控制器及FIFO提供了配置接口,目的是预留给开发者进行IP核移植。

c.jpg


2.3 代码下载控制逻辑
    该逻辑主要功能是在代码下载模式下,将双端口RAM中的汇编程序转移到ROM中,其主要任务是产生读双端口RAM使能信号和地址信号,以及写ROM的使能信号和地址信号。在硬件逻辑中通过计数器实现。当系统复位或退出代码下载模式时,计数器:rom_wr_cnt清零,否则当USB接收完一个包(64字节)后,置计数器使能信号cnt_vld有效,rom_wr_cnt开始计数。cnt_vld直接作为读双端口RAM的使能信号,cnt_vld两级缓存后作为写ROM的使能信号。同时,rom_wr_cnt的低8位直接作为读双端口RAM的地址信号,rom_wr_cnt计算结果经过两级缓存后作为写ROM的地址信号。当64字节转移完毕后,置cnt_vld无效,此时rom_wr_cnt锁存当前值,等待下一个包接收完毕后再次置cnt_vld有效,代码下载控制逻辑就将下一个包的数据追加到ROM中,反复进行就完成了代码经由USB接口下载至ROM中。

3 嵌入式代码的开发
3.1 uVision3.63环境设置
    利用μVision3.63新建一个工程,选择器件类型为NXP(founded by Philips)系列的LPC2101,在默认工程环境的基础上做如下确认:
    ①在“output”选项卡中选中“Create HEX Flie”,确保产生可供下载的机器码。
    ②在“Target”选项卡中选择Code Generation为“ARM-Mode”,确保以ARM指令集为依据产生机器码。
    ③在“C/C++”和“Asm”选项卡中分别去选“EnableARM/Thumb Interworking”,确保生成的代码只包含ARM指令。[page]

3.2 Bootloader的设置
    Bootloader启动一般分为两个阶段。第一阶段主要包含依赖于微处理器的体系结构硬件初始化的代码,设置堆栈并跳转到第二阶段的C程序入口点,通常采用汇编语言来实现。第二阶段通常用C语言完成,以便实现更复杂的功能,也使程序有更好的可读性和可移植性。在μVision3.63软件自带的示例工程“Hello”中,通过下面3行代码实现了两个阶段的工作交接:
d.jpg
    由于本文讨论的微处理器只是在FreeARM7基础之上做了一些基本的扩展,微处理器的体系结构硬件单一,因此第一阶段主要是对堆栈位置和大小进行设置。对USB接口的初始化在第二阶段的C程序中进行,初始化程序如下:
e.jpg
f.jpg

4 微处理器的功能验证
    在完成前面的工作之后,借助FPGA对微处理器进行了功能验证。选用Altera公司DE2开发板作为硬件逻辑的实现载体,微处理器IP核工作时钟为开发板上27 MHz晶振输入,USB控制器IP核工作时钟为27 MHz晶振倍频至48 MHz。功能验证流程如图3所示,在主机上利用μVision 3.63编写、编译验证程序后,微处理器进入下载模式接收主机对设备的代码下载,之后进入用户模式接收主机端传送的验证程序参数值,在运行代码后将执行结果返回至主机,通过与主机软件模拟结果比较达到验证微处理器运行结果的目的。

g.jpg[page]

4.1 验证程序开发
    数据加密标准(DES)是著名的对称密钥分组密码,它由美国标准FIPS 46-2定义。基于ARM7指令系统,DES的C语言实现难度不大,但它是对IP核工作能力的一次综合检验。将DES算法分解为密钥生成算法和加解密算法,对应验证程序中两个子函数,其最终的代码实现框架如下:
h.jpg
    i.jpg
4.2 主机驱动与通信软件开发
    Windows驱动程序模型(Windows Driver Model,WDM)旨在提供一种灵活的方式来简化各种驱动程序的开发,实现对新硬件的支持,降低驱动程序开发的复杂度。基于WDM采用Driver Studio开发USB驱动程序,会自动生成一个驱动程序框架,在此基础上添加读写管道即可完成驱动程序的开发。
    USB通信软件采用MFC编写,主要功能有:将.hex文件以十六进制的形式发送至USB接收USB返回的数据,并以十六进制的形式显示。采用DES程序标准测试向量,其中初始密钥K=1A624(289520DEC46,明文P=748502CD38451097,密文C=DDOCFEB783CF3FDE,在通信软件中代码下载及验证数据的收发如图4所示。按照上述原理,还编写了其他若干验证程序并下载至ROM中,微控制器的执行结果均正确。

j.jpg

 

关键字:FteeARM7  LPC2101  微处理器  USB 引用地址:FreeARM7 IP核的微处理器逻辑扩展与验证

上一篇:基于ARM7的MVB_CAN网关设计
下一篇:基于ARM与有理数滤波的甲烷体积分数监测系统

推荐阅读最新更新时间:2024-03-16 12:36

智能化STM32 F7微控制器如何满足嵌入式系统更高处理性能需求
意法半导体(ST)推出业界首款基于ARM最新Cortex-M7内核的STM32 F7系列微控制器,其性能远超ST之前的32位STM32F4微控制器,通过无缝升级路径可将处理性能和DSP性能提高一倍。 “作为STM32微控制器产品家族的高端产品,STM32 F7使内存和外存的性能达到一个新的水平,给开发人员带来新的创新机会,保证他们不需要再根据存储器性能调整代码。”ST微控制器市场总监Daniel Colonna表示,“而之所以能够在业内率先推出基于Cortex-M7的产品,首先得益于ST与ARM密切的合作关系。其次,ST也与第三方客户保持着广泛的合作,确保他们能够及时得到ARM最新的技术支持并推出新产品。强大的开发生态系统结合多元
[单片机]
智能化STM32 F7微控制器如何满足嵌入式系统更高处理性能需求
ZDS2022示波器百集实操视频之34:如何用示波器对USB解码?
考虑到协议信号应用的广泛性,ZDS2022示波器免费开放了21种协议触发与解码功能,其中当然包括了USB协议,有些客户经常反应说USB不能有效解码,那么本期视频就让您的USB解码不再成为难题! 首先输入USB协议信号,按下【Decode】键,将解码类型设为USB,开启协议触发;然后设置协议参数,检查D+与D-的通道设置是否正确,选择合适的USB模式,ZDS2022支持12种触发模式,我们选择起始包触发。 对于ZDS2022演示板上的USB信号,屏幕上波形已经有效解码。但是可能您测的自己的USB信号还没有有效解码,那是因为您的阈值设置不合适,您可在“解码设置”中,将自动阈值设为OFF,设为手动阈值,可将D+的阈值调到波形的下
[测试测量]
ZDS2022示波器百集实操视频之34:如何用示波器对<font color='red'>USB</font>解码?
USB2.0接口IP核的开发与设计
随着PC机和外围设备的发展,传统的并行接口和串行接口RS-232在易用性(即插即用) 和端口扩展等方面存在着一定的缺陷,这就使之越来越成为通信的瓶颈,因此通用串行总线(universal serial bus,USB)接口也就应运而生。1994年Compaq,IBM,Intel,Microsoft ,NEC 等公司共同提出了USB 协议规范,1996 年制定出了比较成熟的USB 1.1协议标准,最高传输速度为12Mbps。随着通信的发展,其速度明显不能满足需求,因此2000年提出了USB 2.0标准,增加了高速模式,使传输速度提高了40倍,达到了480 Mbps.凭借价格低廉、使用简单、协议灵活,接口标准化和易于端口扩展等优点,US
[应用]
USB-PD/无线充电助攻全直流家庭环境更进一步
日本科技业界对家庭电器全面改采直流供电一直有很高的兴趣,特别是在太阳能等分散式再生能源日渐兴起之后,许多家电大厂都曾倡导过全直流家电。但由于交流电已经存在百年之久,要让这么庞大的生态系统翻转,必然是一场长期抗战。不过,在USB-PD、无线充电等新世代电力传输技术逐渐普及后,除了少数大型家电,如冷气、洗衣机、电冰箱还必须仰赖交流电之外,其他中小型家电要改用直流供电,阻碍会小很多。 罗姆LSI产品开发本部应用工程部部长山本勋认为,USB-PD与无线充电等技术,虽然现阶段都是以手机、笔记型电脑作为主要应用市场,但不管是USB-PD或无线充电,未来都将朝中大功率方向前进,罗姆内部也已经在酝酿相关解决方案。以USB-PD为例,目前标准可
[半导体设计/制造]
2024年起在欧盟销售的所有中小型电子产品将强制使用USB-C接口
在欧洲议会和理事会谈判人员达成临时协议后,欧盟的共同充电器目标又近了一步。截至2024年秋季,所有在欧盟销售的中小型便携式电子设备,包括手机、平板电脑和含电池的无线耳机,都必须配备一个USB-C充电端口。 包括电子阅读器、便携式游戏机和相机在内的另外12个电子产品组也将有义务在欧盟地区共享通用充电标准,笔记本电脑必须在新规定生效后40个月(3.3年)内遵守该规定。 新形成的法律文本是欧盟目标的一部分,即让成员国内销售的电子产品更具有可持续性,减少电子垃圾,同时帮助消费者为其所有设备携带一个单一的充电器。这项立法仍然需要通过欧盟议会和理事会的投票,投票定于今年晚些时候进行,所有迹象表明,绝大多数人都会投票支持共同充电标准。新
[手机便携]
USB 电源管理器和锂离子/聚合物电池充电器具 13V 过压保护
2007 年 5 月 21 日 - 北京 - 凌力尔特公司( Linear Technology Corporation )推出单片线性电源管理器、理想二极管控制器和独立电池充电器 LTC4067 ,该器件适用于便携式产品和电池备份系统。 LTC4067 可以接受 USB 电源、交流适配器或电池电源。它具有 PowerPath TM 控制功能,可向外部设备供电,也可从 USB 总线或交流适配器电源给单节锂离子 / 聚合物电池充电。该器件有片上内部过压控制电路,与外部 P 沟道 MOSFET 配合使用时,对输入提供 13V 保护
[新品]
基于ARM和μC/OS-Ⅱ的嵌入式USB主机设计与应用
1 引 言 通常情况下,打印机、海量存储等设备是由普通PC机来驱动的,由于大量的测控、医疗等系统需要存储、打印数据,因此开发这类设备的嵌入式驱动是非常有实用价值的。目前,各种嵌入式设备基本上是通过软盘存储,并口打印的,而它们的存储容量、数据传输速度已大大落后当前各类嵌入式系统的需求。因此,开发基于 USB接口的嵌入式海量存储设备和打印机驱动已成当务之急。 USB(Universal Serial Bus)是最近几年逐步在PC领域广为应用的新型串行接口技术,它通用性好、实时性强、传输方式多样、成本低、易于扩展和使用,这些优点使它受到许多硬件厂商的青睐,各种类型的USB设备产品大量涌入市场。USB通讯必须是主机和外设通讯,每次
[单片机]
基于ARM和μC/OS-Ⅱ的嵌入式<font color='red'>USB</font>主机设计与应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved