关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > FreeARM7 IP核的微处理器逻辑扩展与验证

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

作者: 时间:2011-03-22 来源:网络 收藏

2.1 lP核改进
核是的核心部分,不能直接作为使用,其原因是数据总线需要读取ROM内的数据、本文选择Philips公司32位ARM7微处理器LPC2101作为原型设计。LPC2101带有适当的存储资源,内嵌2 KB片内静态RAM和8 KB的Flash存储器,且软件可移植性好,工作可靠。参考LPC2101工作原理,当的输出信号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所示。核支持低速和全速模式,共有1个控制传输端点(EP0)、7个其他可配置端点,且缺少微处理器也能响应主机对设备的枚举。收发器电路主要完成模/数信号转换,即在OUT事物中将模拟信号D+和D-转换成串行接口引擎模块可识别的数字信号rxd、rxdp和rxdn,在IN事物中将数字信号txdp和
txdn在使能信号txoe的控制下转换成模拟信号D+和D-;串行接口引擎模块主要完成收发包,根据传输方向可分为接收和发送,主要包括总线检测、同步检测、时钟恢复、不归零反向编码和解码、位填充及位去除、数据的串/并转换;协议层包括协议引擎态机、组包、解包、FIFO控制器;端点O控制器主要负责响应主机标准请求;描述符RAM存储了设备的各种描述符;其他端点控制器及FIFO提供了配置接口,目的是预留给开发者进行核移植。

本文引用地址:https://www.eepw.com.cn/article/162272.htm

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指令。



评论


相关推荐

技术专区

关闭