<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 從技術(shù)層級(jí)分析典型的嵌入式系統(tǒng)設(shè)計(jì)是什么樣的?

          從技術(shù)層級(jí)分析典型的嵌入式系統(tǒng)設(shè)計(jì)是什么樣的?

          作者: 時(shí)間:2018-08-07 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201808/385691.htm

          3、相關(guān)外部設(shè)備的選擇:

          在確定操作系統(tǒng)和處理器之后,就可以確定相關(guān)的外部設(shè)備,如FLASH,RAM,串口等等。在MVB系統(tǒng)中,MVB控制器MVBC(MulTIfuncTIon Vehicle Bus Controller)是一個(gè)MVB電路和實(shí)際的物理設(shè)備之間的接口控制器,它的主要功能是實(shí)現(xiàn)MVB總線信號(hào)與數(shù)據(jù)幀的編解碼,糾錯(cuò)等功能,是本系統(tǒng)中要實(shí)現(xiàn)的關(guān)鍵的硬件模塊。由于系統(tǒng)規(guī)模,上市時(shí)間等方面的要求,系統(tǒng)暫時(shí)不考慮ASIC實(shí)現(xiàn),因此在MVB系統(tǒng)中用FPGA來實(shí)現(xiàn)這個(gè)關(guān)鍵模塊,F(xiàn)PGA 是ASIC最靈活和最合算的替代方案。考慮到系統(tǒng)需求與FPGA資源,成本,供貨情況等因素,最終選擇了Altera公司的Cyclone系列FPGA, 其開發(fā)工具是Quartus II。

          4、MVB系統(tǒng)架構(gòu)

          由以上的需求分析和選型,完整的系統(tǒng)硬件架構(gòu)和軟件架構(gòu)如圖2圖3所示


          圖2:MVB系統(tǒng)的硬件架構(gòu)。


          圖3:MVB系統(tǒng)的軟件架構(gòu)。

          其中,處理器和 MVBC通過Traffic Memory(TM)進(jìn)行通訊數(shù)據(jù)交換,所有軟件和MVBC要交換的控制信息和數(shù)據(jù)都可以在TM地址空間中找到,這個(gè)地址空間對(duì)處理器和MVBC都是可訪問的。其示意圖4如下


          圖4:Traffic Memory。

          三、步驟3:詳細(xì)的軟硬件設(shè)計(jì)和RTL代碼、軟件代碼開發(fā)

          在系統(tǒng)架構(gòu)確定的基礎(chǔ)上,詳細(xì)的軟硬件設(shè)計(jì)就可以開始了。

          1、硬件設(shè)計(jì)

          硬件設(shè)計(jì)設(shè)計(jì)包括了MVB控制器的FPGA設(shè)計(jì)和MVB總線系統(tǒng)的板級(jí)設(shè)計(jì),其中關(guān)鍵的MVB控制器的設(shè)計(jì)如圖5


          圖5:MVB控制器的框圖

          如圖所示,MVB控制器包含以下功能模塊:

          編碼器:產(chǎn)生曼徹斯特編碼,傳送數(shù)據(jù)幀

          發(fā)送緩沖區(qū):作為要發(fā)送的數(shù)據(jù)和CRC檢測(cè)值的緩沖區(qū)

          譯碼器:接收、曼徹斯特譯碼,數(shù)據(jù)提取、數(shù)據(jù)錯(cuò)誤檢測(cè)

          接收緩沖區(qū):作為接收端數(shù)據(jù)和CRC結(jié)果的緩沖區(qū)

          報(bào)文分析單元:檢測(cè)主幀和從幀超時(shí),幀誤檢測(cè)、錯(cuò)誤狀態(tài)報(bào)告

          狀態(tài)控制寄存器:MVBC配置

          主控單元:支持MVBC作為主設(shè)備或者從設(shè)備工作,支持隊(duì)列消息傳送

          設(shè)備地址讀取和儲(chǔ)存單元:硬件定義的設(shè)備地址可以被不同的值覆蓋

          地址邏輯:把CPU對(duì)MVBC內(nèi)部寄存器進(jìn)行訪問的輸入地址進(jìn)行解析;產(chǎn)生MVBC訪問TM的輸出地址

          總線復(fù)用、轉(zhuǎn)換單元:處理MVBC內(nèi)部的數(shù)據(jù)傳送

          中斷邏輯:支持16種中斷源;

          通用定時(shí)器:兩個(gè)定時(shí)輸出信號(hào),可提供給系統(tǒng)同步使用

          時(shí)鐘產(chǎn)生電路:產(chǎn)生所有MVBC工作的時(shí)鐘和計(jì)數(shù)器

          2、軟件設(shè)計(jì)

          由于在MVB系統(tǒng)中,過程數(shù)據(jù),消息數(shù)據(jù),監(jiān)視數(shù)據(jù)是三種不同的通訊機(jī)制,因此,MVB系統(tǒng)軟件的模塊設(shè)計(jì)如圖6。


          四、軟硬件的聯(lián)調(diào)和集成

          下面,以一個(gè)簡(jiǎn)單的例子來說明MVB系統(tǒng)的軟硬件的集成和驗(yàn)證。

          過程數(shù)據(jù)在MVB系統(tǒng)中是周期性發(fā)送的數(shù)據(jù),其在本系統(tǒng)中的通訊機(jī)制如下:對(duì)于發(fā)送方,用戶應(yīng)用模塊將一個(gè)端口的過程變量發(fā)送給過程數(shù)據(jù)處理模塊,過程數(shù)據(jù)處理模塊按照邏輯端口的設(shè)置定時(shí)通過鏈路層接口模塊更新Traffic Memory當(dāng)中的相應(yīng)邏輯端口的數(shù)據(jù),此時(shí)發(fā)送方軟件的任務(wù)完成。發(fā)送方的MVBC硬件接收總線管理器BA定時(shí)發(fā)出的主幀,通過譯碼器解碼得到相應(yīng)的邏輯端口的值,通過查詢Traffic Memory相關(guān)的邏輯端口發(fā)送設(shè)置后將MVBC自動(dòng)設(shè)置為發(fā)送狀態(tài),將邏輯端口的數(shù)據(jù)作為過程數(shù)據(jù)從幀通過編碼器發(fā)出,如圖7所示:


          圖7:過程數(shù)據(jù)通訊示例。

          對(duì)于接收方,其接收過程與發(fā)送方相逆,接收方的MVBC硬件接收總線管理器BA定時(shí)發(fā)出的主幀,通過譯碼器解碼得到相應(yīng)的邏輯端口的值,通過查詢 Traffic Memory相關(guān)的邏輯端口接收設(shè)置后將MVBC自動(dòng)設(shè)置為接收狀態(tài)將,在收到發(fā)送方發(fā)出的從幀后更新相應(yīng)邏輯端口在Traffic Memory的數(shù)據(jù)并發(fā)出中斷信號(hào)從而完成硬件的接收過程。接收方的軟件可以用中斷或定時(shí)查詢的方式通過過程數(shù)據(jù)處理模塊得到更新后的邏輯端口的過程數(shù)據(jù)

          五、系統(tǒng)的測(cè)試

          在本系統(tǒng)中,系統(tǒng)的測(cè)試即包括了軟件的測(cè)試,也包括了硬件,F(xiàn)GPA的測(cè)試,在本文中不再贅述。

          結(jié)束語

          上述的MVB系統(tǒng)現(xiàn)已運(yùn)行在列車控制系統(tǒng)中,成功實(shí)現(xiàn)對(duì)列車的運(yùn)行控制、機(jī)車控制、車輛控制、狀態(tài)監(jiān)測(cè)、故障診斷。當(dāng)然,如有需要,本文中的MVB系統(tǒng)可以轉(zhuǎn)化成為ASIC設(shè)計(jì),從而成為一個(gè)SOC的系統(tǒng)。


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();