關(guān) 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > FreeARM7 IP核的微處理器邏輯擴(kuò)展與驗(yàn)證

        FreeARM7 IP核的微處理器邏輯擴(kuò)展與驗(yàn)證

        作者: 時間:2011-03-22 來源:網(wǎng)絡(luò) 收藏

        2.1 lP核改進(jìn)
        核是的核心部分,不能直接作為使用,其原因是數(shù)據(jù)總線需要讀取ROM內(nèi)的數(shù)據(jù)、本文選擇Philips公司32位ARM7微處理器LPC2101作為原型設(shè)計。LPC2101帶有適當(dāng)?shù)拇鎯Y源,內(nèi)嵌2 KB片內(nèi)靜態(tài)RAM和8 KB的Flash存儲器,且軟件可移植性好,工作可靠。參考LPC2101工作原理,當(dāng)的輸出信號ram_addr的最高4位為4'b0時,表示數(shù)據(jù)總線需要讀取ROM的數(shù)據(jù)。為解決該問題,新增一個wrap文件lpc2101_arm.v完成該功能。它的作用是:當(dāng)ram_addr[31:28]==4'b0時,該直接從rom_en、rom_addr、rom_data的接口中讀取ROM數(shù)據(jù),送入ram rdata。
        2.2 USB1.1設(shè)備控制器
        本文選用的USB設(shè)備控制器是課題組早期項(xiàng)目之一,它是由Opencores網(wǎng)站提供的初級開源版本改進(jìn)而成,其結(jié)構(gòu)如圖2所示。核支持低速和全速模式,共有1個控制傳輸端點(diǎn)(EP0)、7個其他可配置端點(diǎn),且缺少微處理器也能響應(yīng)主機(jī)對設(shè)備的枚舉。收發(fā)器電路主要完成模/數(shù)信號轉(zhuǎn)換,即在OUT事物中將模擬信號D+和D-轉(zhuǎn)換成串行接口引擎模塊可識別的數(shù)字信號rxd、rxdp和rxdn,在IN事物中將數(shù)字信號txdp和
        txdn在使能信號txoe的控制下轉(zhuǎn)換成模擬信號D+和D-;串行接口引擎模塊主要完成收發(fā)包,根據(jù)傳輸方向可分為接收和發(fā)送,主要包括總線檢測、同步檢測、時鐘恢復(fù)、不歸零反向編碼和解碼、位填充及位去除、數(shù)據(jù)的串/并轉(zhuǎn)換;協(xié)議層包括協(xié)議引擎態(tài)機(jī)、組包、解包、FIFO控制器;端點(diǎn)O控制器主要負(fù)責(zé)響應(yīng)主機(jī)標(biāo)準(zhǔn)請求;描述符RAM存儲了設(shè)備的各種描述符;其他端點(diǎn)控制器及FIFO提供了配置接口,目的是預(yù)留給開發(fā)者進(jìn)行核移植。

        本文引用地址:http://www.104case.com/article/162272.htm

        c.jpg


        2.3 代碼下載控制
        主要功能是在代碼下載模式下,將雙端口RAM中的匯編程序轉(zhuǎn)移到ROM中,其主要任務(wù)是產(chǎn)生讀雙端口RAM使能信號和地址信號,以及寫ROM的使能信號和地址信號。在硬件邏輯中通過計數(shù)器實(shí)現(xiàn)。當(dāng)系統(tǒng)復(fù)位或退出代碼下載模式時,計數(shù)器:rom_wr_cnt清零,否則當(dāng)USB接收完一個包(64字節(jié))后,置計數(shù)器使能信號cnt_vld有效,rom_wr_cnt開始計數(shù)。cnt_vld直接作為讀雙端口RAM的使能信號,cnt_vld兩級緩存后作為寫ROM的使能信號。同時,rom_wr_cnt的低8位直接作為讀雙端口RAM的地址信號,rom_wr_cnt計算結(jié)果經(jīng)過兩級緩存后作為寫ROM的地址信號。當(dāng)64字節(jié)轉(zhuǎn)移完畢后,置cnt_vld無效,此時rom_wr_cnt鎖存當(dāng)前值,等待下一個包接收完畢后再次置cnt_vld有效,代碼下載控制邏輯就將下一個包的數(shù)據(jù)追加到ROM中,反復(fù)進(jìn)行就完成了代碼經(jīng)由USB接口下載至ROM中。

        3 嵌入式代碼的開發(fā)
        3.1 uVision3.63環(huán)境設(shè)置
        利用μVision3.63新建一個工程,選擇器件類型為NXP(founded by Philips)系列的LPC2101,在默認(rèn)工程環(huán)境的基礎(chǔ)上做如下確認(rèn):
        ①在“output”選項(xiàng)卡中選中“Create HEX Flie”,確保產(chǎn)生可供下載的機(jī)器碼。
        ②在“Target”選項(xiàng)卡中選擇Code Generation為“ARM-Mode”,確保以ARM指令集為依據(jù)產(chǎn)生機(jī)器碼。
        ③在“C/C++”和“Asm”選項(xiàng)卡中分別去選“EnableARM/Thumb Interworking”,確保生成的代碼只包含ARM指令。



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 鄯善县| 高密市| 平武县| 靖西县| 新泰市| 壶关县| 福建省| 邵武市| 大关县| 沙坪坝区| 雷山县| 云浮市| 新田县| 万源市| 武陟县| 长岛县| 安平县| 南木林县| 永宁县| 烟台市| 阿尔山市| 洛南县| 禹城市| 彩票| 白玉县| 南开区| 永修县| 玉溪市| 华亭县| 东丰县| 娄底市| 贡觉县| 林甸县| 政和县| 三原县| 延庆县| 乌什县| 类乌齐县| 玉门市| 洛南县| 石渠县|