国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于Microblaze的用戶接口電路設(shè)計

2019-09-10 21:25:32高璽璟張志國
計算機(jī)與網(wǎng)絡(luò) 2019年6期
關(guān)鍵詞:嵌入式系統(tǒng)

高璽璟 張志國

摘要:針對電路交換和軟交換中廣泛應(yīng)用的SLIC接口電路,提出了一種基于Xilinx軟核Microblaze為主控CPU的設(shè)計方案,給出了系統(tǒng)設(shè)計的全過程,包括基于EDK軟件環(huán)境搭建硬件平臺、IP核的制作和加載,以及軟件平臺的開發(fā)。通過SPI接口實現(xiàn)對SLIC芯片的控制,SLIC接口芯片采用SI公司的SI32260,實現(xiàn)完整的BORSCH功能。設(shè)計最大限度地利用FPGA的內(nèi)部資源,釋放了大量IO并簡化了PCB設(shè)計,提高了系統(tǒng)的可靠性。

關(guān)鍵詞:嵌入式系統(tǒng);Microblaze;軟核;用戶接口

中圖分類號:TP331文獻(xiàn)標(biāo)志碼:A文章編號:1008-1739(2019)06-67-2

0引言

近年來,基于FPGA的嵌入式系統(tǒng)設(shè)計與開發(fā)取得了突飛猛進(jìn)的發(fā)展,F(xiàn)PGA不再僅僅只是一個邏輯器件,而是集成了CPU核與豐富外設(shè)的可編程片上系統(tǒng)SOPC[1]。用戶線接口電路SLIC是電路交換、軟交換系統(tǒng)中不可或缺的用于提供模擬電話的接口[2]。SLIC接口有2種實現(xiàn)方式,一種是采用集成SLIC芯片及外圍電路,另外一種是采用分立模擬器件搭建電路。采用SLIC芯片,具有開發(fā)周期短、集成度高和易于維護(hù)等優(yōu)點,成為SLIC接口開發(fā)的主要方式。SI公司主流的SLIC接口芯片支持SPI控制接口和PCM數(shù)字音頻接口,提供SLIC接口。Microblaze是XILINX SPANTAN系列FPGA內(nèi)部的32位微處理器軟核,作為CPU完成多路SLIC芯片的控制[3-4]。

1硬件系統(tǒng)

1.1硬件總體設(shè)計

硬件主要包括硬件平臺的搭建和FPGA邏輯設(shè)計[5]。使用 XILINX集成開發(fā)環(huán)境XPS完成基于Microblaze的系統(tǒng)平臺搭建[6],配置所需的各種外設(shè);設(shè)計時序邏輯,并作為定制IP核加載到Microblaze外設(shè)總線[7];使用EDK完成系統(tǒng)軟件的編譯,與硬件可執(zhí)行文件合并,實現(xiàn)對SLIC芯片的控制,完成用戶接口電路完整的BORSCHT功能。

1.2搭建硬件平臺

基于Microblaze的硬件平臺如圖1所示[8-9]。

以FPGA軟核Microblaze為核心,搭建一個具有SPI接口、外設(shè)接口EPC、外部存儲器接口EMC、串口、外部中斷接口和GPIO接口的系統(tǒng)。一組SPI總線完成對SLIC芯片的控制,另一組SPI總線連接FPGA的配置芯片F(xiàn)lash,系統(tǒng)上電首先運行Boot Loader程序,將主程序從Flash加載到外部RAM,加載完成時程序跳轉(zhuǎn)至RAM執(zhí)行。EPC接口連接至邏輯IP核的雙口RAM,用于控制字的讀取和狀態(tài)字的寫入;邏輯IP核使用VHDL語言編寫邏輯代碼,完成交換機(jī)總線到SLIC芯片的PCM總線時隙調(diào)整,每路控制字、狀態(tài)字寫入對應(yīng)的雙口RAM,定時給CPU發(fā)送中斷等邏輯功能,做成一個IP核加載到Microblaze上[10]。

1.3 FPGA邏輯設(shè)計

FPGA邏輯設(shè)計主要完成交換機(jī)總線接口、CPU接口、雙口RAM的時序調(diào)整和邏輯控制。頂層文件完成外部接口描述和各個模塊之間的連接關(guān)系。交換機(jī)總線是程控交換機(jī)主控板與外圍板之間通過時分復(fù)用收發(fā)信令、PCM的一組總線。交換機(jī)總線接口通過串并轉(zhuǎn)換將收到的每一路控制字存入雙口RAM對應(yīng)位置,CPU只讀。CPU接口完成Microblaze對雙口RAM的讀寫。CPU將每路SLIC的狀態(tài)字寫入雙口RAM,交換機(jī)總線接口通過并串轉(zhuǎn)換在對應(yīng)時隙將狀態(tài)字發(fā)給交換機(jī)。為了使雙口RAM兩側(cè)的讀寫不沖突,CPU對雙口RAM的讀寫與狀態(tài)字、控制字的收發(fā)不在同一幀。

2軟件系統(tǒng)

2.1軟件開發(fā)流程

SDK提供了豐富的函數(shù)庫和實例,方便開發(fā)。system.mss包含系統(tǒng)所有接口的定義及函數(shù)的實例,用戶可以利用這些實例快速地編寫軟件。

硬件平臺導(dǎo)出至SDK后,SDK新建Boot Loader和主程序2個工程。Boot Loader工程為FPGA加載完成后的啟動程序,完成主程序從Flash到外部RAM的搬運,主程序完全搬運到RAM中后,程序跳轉(zhuǎn)至RAM中運行,軟件流程圖如圖2所示。

2.2主程序設(shè)計

主程序完成SLIC芯片的初始化和軟件流程控制,主程序流程圖如圖3所示。

Microblaze初始化包括SPI控制器初始化、中斷向量初始化和通用引腳(GPIO)初始化。Microblaze系統(tǒng)平臺搭建完畢以后會自動為每種設(shè)備分配基地址和設(shè)備類型字,Xilinx公司提供了各種IP核的API函數(shù),通過這些函數(shù)用戶可以很容易地實現(xiàn)對IP核的控制。MAIN程序中主要包括SPI控制器初始化函數(shù)、中斷初始化函數(shù)、GPIO初始化函數(shù)和SPI讀寫函數(shù)。

SLIC芯片初始化包括直流饋電設(shè)置、鈴流設(shè)置、時隙分配設(shè)置和中斷使能設(shè)置,初始化完成后SLIC接口就產(chǎn)生饋電電壓。通過SPI接口和GPIO接口配合使用實現(xiàn)對多路SLIC芯片的控制。CPU的SPI接口的CS信號連接至數(shù)據(jù)緩沖器的使能端,每一路SLIC芯片的CS通過數(shù)據(jù)緩沖器用一個GPIO來控制。

2.3雙口RAM地址映射

CPU通過外部設(shè)備控制器(EPC)讀寫存于雙口RAM的控制字和狀態(tài)字,F(xiàn)PGA完成串并轉(zhuǎn)換和交換機(jī)總線信令的收發(fā)。FPGA的邏輯IP核對,定時給CPU發(fā)送一個外部中斷,CPU對狀態(tài)字、控制字進(jìn)行一次更新。IP核對背板來的信令進(jìn)行串并轉(zhuǎn)換,并順序存入雙口RAM。交換機(jī)總線控制字、狀態(tài)字的讀寫,通過數(shù)組來完成雙口RAM地址映射。

2.4中斷程序設(shè)計

對控制字和狀態(tài)字的處理是在中斷程序內(nèi)完成的??刂谱钟糜诳刂朴脩舳丝诘母鞣N功能;Microblaze根據(jù)收到的控制字,通過SPI接口對SLIC芯片對應(yīng)寄存器進(jìn)行更新,從而控制話機(jī)振鈴及停鈴等。狀態(tài)字用于描述用戶端口的各種工作狀態(tài),SLIC芯片檢測到話機(jī)摘機(jī)后通過SPI接口上報給Microblaze,Microblaze更新雙口RAM上報狀態(tài)字。外部中斷定時觸發(fā)一次中斷程序,完成控制字和狀態(tài)字的更新,并控制SLIC芯片完成BORSCHT功能。

3關(guān)鍵技術(shù)問題分析

3.1定制IP核的制作

IP核的制作過程是將用戶自己用VHDL或者Verilog HDL語言編寫的邏輯源程序做成一個外設(shè)加載到XPS工程。源文件主要由源程序和網(wǎng)表文件2種文件組成。需要注意的是,XPS不支持VHDL和Verilog HDL混合編程。在實際應(yīng)用中,尤其是FPGA邏輯是由幾個研發(fā)人員共同編寫的,有時會出現(xiàn)幾個源文件是用不同的語言編寫的情況。在這種情況下,需要先用ISE進(jìn)行混合編程,生成網(wǎng)表文件,再加入到XPS中。

把IP核用到的所有源程序文件和網(wǎng)表文件放于指定目錄下,編寫mpd文件、pao文件和bbd文件,按照外設(shè)導(dǎo)入向?qū)У牟襟E加入到XPS工程中。

3.2軟硬件平臺的融合

Xilinx硬件平臺的搭建和軟件的編譯是分開進(jìn)行的。XPS搭建好硬件平臺以后,需要生成硬件可執(zhí)行文件,導(dǎo)出至SDK,SDK完成軟硬件的融合。

3.3 Flash加載

系統(tǒng)上電以后,F(xiàn)PGA加載啟動程序,啟動程序加載完成后完成主程序從Flash到外部RAM的搬運,當(dāng)主程序完全搬運到RAM中后,程序跳轉(zhuǎn)至RAM中運行。

啟動程序和系統(tǒng)硬件通過EDK編譯為一個可執(zhí)行文件,主程序工程編譯為另一個可執(zhí)行文件,二者是通過批處理腳本文件合并生成一個mcs固件燒寫到Flash。腳本文件定義了主程序的起始地址。

4結(jié)束語

通過XPS搭建基于Microblaze的硬件平臺,外圍邏輯制作成IP核加載到CPU,基于SDK編譯控制軟件,實現(xiàn)對SLIC接口芯片的控制,提高系統(tǒng)可靠性,降低了成本。

參考文獻(xiàn)

[1]楊強(qiáng)浩.基于EDK的FPGA嵌入式系統(tǒng)開發(fā)[M].北京:機(jī)械工業(yè)出版社,2008.

[2]劉晨暉,任勇峰,李輝景,等.基于FPGA的多接口PCM傳輸系統(tǒng)的設(shè)計[J].電子器件,2016,39(2):324-328.

[3]吳志勇,郭元興,劉雨沁.基于FPGA的波特率連續(xù)可調(diào)的UART接口設(shè)計[J].通信技術(shù),2018(1):252-256.

[4]趙澤才,常青.基于Microblaze的嵌入式系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2006,29(10):56-57.

[5]劉安,禹衛(wèi)東,馬小兵,等.基于FPGA的高速串行數(shù)據(jù)收發(fā)接口設(shè)計[J].電子技術(shù)應(yīng)用,2017(6):48-51.

[6]單超,王萍,朱愛民,等.基于Microblaze軟核的嵌入式系統(tǒng)設(shè)計[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2011,11(3):18-21.

[7]路后兵.Xilinx FPGA的嵌入式系統(tǒng)開發(fā)過程[J].單片機(jī)與嵌入式系統(tǒng)應(yīng),2012,12(11):32-34.

[8]劉雨沁,郭元興,劉繼平.基于FPGA的SDIO通信接口的設(shè)計實現(xiàn)[J].通信技術(shù),2017,50(11):2632-2636.

[9]張強(qiáng),王華,蘇宏鋒,等.基于Xilinx FPGA的硬件協(xié)處理器設(shè)計[J].數(shù)字技術(shù)與應(yīng)用,2017(4):173-174.

[10]阮芳,馮永新.基于Xilinx Microblaze的嵌入式I/O系統(tǒng)設(shè)計與實現(xiàn)[J].電子器件,2008,31(2):626-630.

猜你喜歡
嵌入式系統(tǒng)
Teaching Research on IoT and—Embedded System of Software Engineering
基于Xilinx口袋實驗室的組合邏輯電路設(shè)計實驗
面向應(yīng)用的智能專業(yè)嵌入式系統(tǒng)教學(xué)
基于物聯(lián)網(wǎng)的遠(yuǎn)程紅外控制器
嵌入式系統(tǒng)軟件開發(fā)技術(shù)探析
基于AVR單片機(jī)的SPI接口設(shè)計與實現(xiàn)
辦公自動化系統(tǒng)的設(shè)計
嵌入式系統(tǒng)在醫(yī)療器械中的應(yīng)用分析
基于物聯(lián)網(wǎng)項目驅(qū)動的嵌入式系統(tǒng)教學(xué)改革的研究與實踐
嵌入式系統(tǒng)課程“中斷、異常與事件”教學(xué)實踐及啟示
石嘴山市| 邵武市| 凤城市| 沅江市| 德庆县| 章丘市| 宁河县| 抚州市| 景泰县| 定结县| 布拖县| 怀仁县| 长宁区| 松阳县| 林甸县| 准格尔旗| 卢龙县| 曲沃县| 灵璧县| 邢台县| 读书| 鄯善县| 息烽县| 云阳县| 隆回县| 枞阳县| 深水埗区| 永善县| 和龙市| 闸北区| 灵台县| 浦江县| 阳东县| 蒙山县| 雷波县| 吉林市| 岳西县| 榆树市| 游戏| 阿合奇县| 萨迦县|