《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > MVB1類設(shè)備控制器的FPGA設(shè)計(jì)

MVB1類設(shè)備控制器的FPGA設(shè)計(jì)

2007-12-27
作者:MVB1類設(shè)備控制器的FPGA設(shè)

摘?要:以Xilinx公司的ISE為開發(fā)平臺,采用Xilinx Spartan2e XC2S200-5PQ2081芯片,實(shí)現(xiàn)了MVB1類設(shè)備控制器" title="設(shè)備控制器">設(shè)備控制器的功能,并搭建了測試模型,在Modelsim中仿真了其收/發(fā)幀及報(bào)文分析等功能,得到了符合IEC61375協(xié)議的幀波形。
關(guān)鍵詞:MVB控制器專用芯片? FPGA? MVB1類設(shè)備控制器

?

??? MVB(多功能車輛總線)控制器是MVB上的核心處理器,它獨(dú)立于物理層和功能設(shè)備,為在總線上的各個設(shè)備提供通訊接口和通訊服務(wù)。在MVB協(xié)議結(jié)構(gòu)層次中,MVB控制器完成鏈路層的功能,依靠物理層發(fā)送和接收具有電氣特征的電信號,同時(shí)為網(wǎng)絡(luò)層提供過程數(shù)據(jù)(包括監(jiān)視數(shù)據(jù))、消息數(shù)據(jù)的變量接口。該接口采用TM(共享通訊存儲器)實(shí)現(xiàn),即應(yīng)用層的CPU和鏈路層的MVB控制器一致地訪問TM,即對端口中所有數(shù)據(jù)的讀和寫在一次不可分割的操作中完成[1-2]
  目前國外廠商壟斷著對MVB控制器芯片的制造,致使在國內(nèi)購買MVB控制器芯片價(jià)格昂貴。用FPGA替代MVB控制器專用芯片,是一個很好的解決方案。FPGA作為一種可編程邏輯器件,可以完成數(shù)字集成電路的大多數(shù)功能,由于其內(nèi)部有豐富的可編程資源,使模塊的修改、驗(yàn)證、功能擴(kuò)展都十分方便。應(yīng)用FPGA還可以在內(nèi)部實(shí)現(xiàn)與應(yīng)用處理器的接口轉(zhuǎn)換,簡化外圍電路[3]。另外,F(xiàn)PGA低廉的價(jià)格也是其替代專用集成電路的一大優(yōu)勢。
  在MVB中大量應(yīng)用具有過程數(shù)據(jù)傳輸和設(shè)備狀態(tài)數(shù)據(jù)傳輸能力的1類設(shè)備。1類設(shè)備邏輯不支持CPU或微處理器的操作。它主要作為傳感器執(zhí)行單元,只進(jìn)行數(shù)據(jù)的采集和傳輸,不進(jìn)行處理,因此可以單獨(dú)用FPGA和簡單外圍電子電路實(shí)現(xiàn)網(wǎng)絡(luò)傳輸和控制功能,不需要CPU[4~5]。在設(shè)計(jì)好MVB1類設(shè)備控制器的基礎(chǔ)上,可根據(jù)需要采用模塊復(fù)用技術(shù)把MVB1類設(shè)備控制器擴(kuò)展為MVB2、3、4或5類設(shè)備控制器[6]。
1 總體結(jié)構(gòu)
  設(shè)計(jì)中采用自頂向下的方法。自頂向下的設(shè)計(jì)是從系統(tǒng)級開始,把系統(tǒng)劃分為若干個基本單元,然后再把每個單元劃分為下一層次的基本單元,直到可以直接用EDA元件庫中的基本元件實(shí)現(xiàn)為止。MVB1類設(shè)備控制器的頂層結(jié)構(gòu)主要包括發(fā)送模塊" title="發(fā)送模塊">發(fā)送模塊、接收模塊" title="接收模塊">接收模塊和MVB1類模式控制模塊" title="控制模塊">控制模塊[7-8],如圖1所示。當(dāng)MVB1類設(shè)備被16位主幀輪詢時(shí),1類設(shè)備控制器先判斷該主幀的第11至4位是否與設(shè)備所配置的設(shè)備地址相同,如果相同則表明該設(shè)備被尋址,需響應(yīng)從幀或接收其他從設(shè)備響應(yīng)的從幀。

?

?


1.1 發(fā)送模塊
??? 發(fā)送模塊實(shí)現(xiàn)的功能是把MVB1類設(shè)備控制器從TM中提取的數(shù)據(jù)進(jìn)行并串轉(zhuǎn)換,加上幀頭、起始位和CRC校驗(yàn)后再經(jīng)過曼徹斯特編碼發(fā)送到MVB上。
1.2 接收模塊
  接收模塊的功能主要有兩部分:譯碼,即對MVB1類設(shè)備控制器從MVB上檢測到的曼徹斯特碼進(jìn)行解碼,串并轉(zhuǎn)換后存儲在緩沖區(qū)中;線路檢測,主要檢測線路上的各種錯誤(包括CRC校驗(yàn)、幀長檢測、曼徹斯特碼違規(guī)等),并向MVB1類模式控制模塊提交錯誤報(bào)告。
1.3 MVB1類設(shè)備控制模塊
  MVB1類設(shè)備控制模塊包括報(bào)文超時(shí)單元、報(bào)文錯誤處理單元、主幀寄存器單元、TM控制單元" title="控制單元">控制單元和主控單元,如圖2所示。

?


1.3.1 報(bào)文超時(shí)單元
  在主幀結(jié)束后的一定時(shí)間,接收模塊沒有報(bào)告收到正確的從幀,本單元產(chǎn)生應(yīng)答超時(shí)信號;接收模塊沒有報(bào)告接收到正確的主幀,本單元產(chǎn)生線路超時(shí)信號。
1.3.2 報(bào)文錯誤控制單元
  接收模塊報(bào)告收到正確主幀時(shí),請求主幀寄存器單元向接收模塊發(fā)讀主幀命令,對錯誤主幀不處理。收到正確的從幀時(shí),請求主控單元發(fā)存儲從幀命令,對錯誤從幀不處理。無應(yīng)答超時(shí)下收到多個主幀,只應(yīng)用最后一個。兩個主幀間有多個從幀,只對第一個從幀處理。
1.3.3 主幀寄存器單元
  當(dāng)報(bào)文分析單元收到正確的主幀后產(chǎn)生讀取主幀rd_mf信號,通知接收模塊把緩沖區(qū)的主幀數(shù)據(jù)送入數(shù)據(jù)總線供本單元讀入到MFR(主幀寄存器)中;比較MFR與設(shè)備地址,如果相同則產(chǎn)生設(shè)備尋址信號device_sele送往主控單元,表示選中該設(shè)備以期進(jìn)行下一步操作。
1.3.4 TM訪問控制單元
  TM訪問控制單元的功能包括:產(chǎn)生對TM的讀寫控制和片選信號;判斷f_code(主幀高四位),如果在0~4之間,表明該主幀是過程數(shù)據(jù)請求,如果為15,表明該主幀是設(shè)備狀態(tài)請求。當(dāng)主幀是過程數(shù)據(jù)請求時(shí),如果主幀的低四位在0~7之間,表明主幀訪問的是源端口(產(chǎn)生source信號),控制器從TM中提取從幀經(jīng)發(fā)送模塊發(fā)送出去;如果是在8~15之間,表明主幀訪問的是宿端口(產(chǎn)生sink信號),控制器等待接收其他從設(shè)備發(fā)送的從幀數(shù)據(jù)。對端口15的寫操作將觸發(fā)同步信號strobe_n有效。當(dāng)主幀是設(shè)備狀態(tài)請求時(shí),由本單元內(nèi)部產(chǎn)生設(shè)備狀態(tài)報(bào)文響應(yīng)從幀數(shù)據(jù),經(jīng)發(fā)送模塊發(fā)送。狀態(tài)機(jī)如圖3所示。

?

?


  狀態(tài)機(jī)在IDLE狀態(tài)且read_mf信號有效時(shí),跳轉(zhuǎn)到RECEIVE_MF狀態(tài)。此時(shí)若收到source信號,則跳轉(zhuǎn)到SEND_SF_READY狀態(tài),準(zhǔn)備發(fā)送從幀;如果收到sink信號,則跳轉(zhuǎn)到RECEIVE_SF_READY狀態(tài),準(zhǔn)備接收從幀。狀態(tài)機(jī)在SEND_SF_READY狀態(tài),收到send_slave_frame信號,跳轉(zhuǎn)到SEND_SF,發(fā)送從幀。此時(shí)TM訪問控制單元實(shí)現(xiàn)兩種功能:f_code為0~4時(shí)對外部TM發(fā)出讀請求;f_code為15時(shí),產(chǎn)生DSR_RD響應(yīng)設(shè)備狀態(tài)請求。對TM的讀請求包括TMCS_N與TMRD_N,如圖4所示,當(dāng)f_code為0~4之間時(shí),TMCS有效,表示對外部TM中進(jìn)行讀/寫操作。本單元定義了計(jì)數(shù)器counter用來產(chǎn)生讀請求TMRD_N,如圖4中當(dāng)f_code為0010時(shí),要從TM讀取4個word的從幀,計(jì)數(shù)器從此狀態(tài)初計(jì)數(shù),計(jì)到1、3、5、7時(shí)TMRD_N為低電平。外部TM每接到一個TMRD_N信號,提取一個字的數(shù)據(jù)到數(shù)據(jù)總線。當(dāng)計(jì)數(shù)器計(jì)到7時(shí),已經(jīng)從TM中提取了正確長度的從幀,狀態(tài)機(jī)跳轉(zhuǎn)到SEND_SF_OVER狀態(tài),表示讀從幀結(jié)束。f_code為15時(shí),counter計(jì)數(shù)到1產(chǎn)生低脈沖信號DSR_RD,同時(shí)產(chǎn)生設(shè)備狀態(tài)響應(yīng)。TMRD_N有效時(shí),本單元將向發(fā)送模塊發(fā)送receive_data信號,通知它準(zhǔn)備接收數(shù)據(jù)總線上的數(shù)據(jù)。狀態(tài)機(jī)在RECEIVE_SF_READY狀態(tài)時(shí),如果收到應(yīng)答超時(shí)或者從幀錯誤信號,則跳回到IDLE狀態(tài),準(zhǔn)備重新接收下一主幀請求;如果收到save_slave_frame信號,則跳轉(zhuǎn)到RECEIVE_SF狀態(tài)準(zhǔn)備接收從幀。狀態(tài)機(jī)在RECEIVE_SF時(shí),TM訪問控制單元向外部TM發(fā)出寫請求。寫請求信號包括TMCS_N和TMWR_N信號,其時(shí)序圖如圖4所示。同樣,寫請求TMWR_N的產(chǎn)生與讀請求類似。當(dāng)向TM中寫入正確長度的從幀數(shù)據(jù)時(shí),狀態(tài)機(jī)跳轉(zhuǎn)到RECEIVE_SF_OVER狀態(tài),表示寫從幀操作結(jié)束。當(dāng)TMWR_N信號有效時(shí),本單元向解碼模塊發(fā)送rd_sf信號,表示要從該模塊提取從幀到數(shù)據(jù)總線上。在SEND_SF_OVER或RECEIVE_SF_OVER狀態(tài)將直接跳回IDLE。

?


1.3.5 主控單元
  產(chǎn)生read_mf信號,作為TM訪問控制單元讀取主幀寄存器的使能信號。
??? 如果收到TM控制單元送來的source信號,則在本單元內(nèi)產(chǎn)生send_slave_frame信號送往TM控制單元和發(fā)送模塊,通知TM控制單元從TM中提取數(shù)據(jù)到數(shù)據(jù)總線上,再由發(fā)送模塊提取數(shù)據(jù)到發(fā)送FIFO中以發(fā)送;如果收到TM控制單元送來的sink信號,并且報(bào)文錯誤,處理單元報(bào)告收到正確的從幀,在本單元內(nèi)部將產(chǎn)生save_slave_frame信號送往TM控制單元,通知TM控制單元準(zhǔn)備接收從幀并存儲到TM中。主控單元各個信號的產(chǎn)生時(shí)序圖如圖5所示。

?


1.4 總線復(fù)用器
  為了節(jié)省資源,在MVB1類設(shè)備控制器頂層模塊定義了總線復(fù)用器,用來實(shí)現(xiàn)各個模塊的總線共享。為了避免總線沖突,同一時(shí)刻只能有一個模塊向總線發(fā)送數(shù)據(jù)以供其他模塊接收,總線在空閑時(shí)呈高阻態(tài)。各個模塊訪問總線機(jī)制采用多路選擇器的方式,如圖6所示。

?


  當(dāng)TMRD_N有效時(shí),控制器從TM中提取的數(shù)據(jù)經(jīng)存儲器輸出數(shù)據(jù)總線data_out_buffer_mem被輸入到控制器內(nèi)部公共數(shù)據(jù)總線上,以供發(fā)送模塊接收。當(dāng)DSR_RD信號有效時(shí),由TM控制模塊產(chǎn)生16位從幀數(shù)據(jù),經(jīng)數(shù)據(jù)總線data_out_buffer_tmc發(fā)送到公共數(shù)據(jù)總線上供發(fā)送模塊接收。當(dāng)rd_sf或rd_mf信號有效時(shí),接收模塊FIFO中的數(shù)據(jù)經(jīng)數(shù)據(jù)總線data_out_buffer_decoder被送至公共數(shù)據(jù)總線上以供TM或TM控制模塊接收。
2 測試
  MVB1類設(shè)備控制器的測試模型如圖7所示。測試MVB1類設(shè)備控制器的功能包括:測試是否能收到正確的主幀;收到正確主幀后,如果主幀是過程數(shù)據(jù)請求,并且訪問的是源端口,能否從TM提取數(shù)據(jù)發(fā)送到MVB上;如果訪問的是宿端口,能否正確接收其他從設(shè)備發(fā)送到MVB上的從幀,再發(fā)送到MVB總線上。為了進(jìn)行有效測試,如圖7所示定義了可以調(diào)用發(fā)送主/從幀命令的測試模型mcu_model、提供發(fā)送主/從幀數(shù)據(jù)的模型tm_model及MVB1類設(shè)備外部TM模型。

?


  圖8、圖9為部分仿真波形。發(fā)送模塊1發(fā)送主幀0c50。由圖8可知,MVB1類設(shè)備控制器檢測到發(fā)送模塊1發(fā)送的主幀后,通過總線data_out_buffer_mem從外部TM中提取一個字長的數(shù)據(jù)到數(shù)據(jù)總線上經(jīng)發(fā)送模塊2發(fā)送。由仿真圖可以看出TMCS_N及TMRD_N有效。

?


??? 發(fā)送模塊1發(fā)送主幀0c5f后再發(fā)送16 位從幀數(shù)據(jù)。由圖9可知控制器檢測到發(fā)送模塊1發(fā)送的主幀后,又收到16位的從幀數(shù)據(jù),并通過總線data_in_buffer_mem把數(shù)據(jù)送到TM中。由于是對端口15的操作,由圖中可以看出TMCS_N、TMWR_N及同步信號strobe_n有效。
  本文在研究MVB的基礎(chǔ)上,用FPGA實(shí)現(xiàn)了MVB1類設(shè)備控制器的設(shè)計(jì),具體描述了1類設(shè)備控制器各個模塊的功能及設(shè)計(jì)方法。經(jīng)過仿真驗(yàn)證,該1類設(shè)備控制器能夠成功收發(fā)幀數(shù)據(jù),對報(bào)文進(jìn)行分析,并且由于該1類設(shè)備控制器采用了自頂向下的設(shè)計(jì)原則,設(shè)計(jì)的各個子模塊功能相互獨(dú)立,因此易于擴(kuò)展。當(dāng)設(shè)計(jì)MVB2、3、4或5類設(shè)備控制器時(shí),可以在本設(shè)計(jì)的基礎(chǔ)上采用模塊(發(fā)送模塊、接收模塊)復(fù)用的方法,從而有效地節(jié)省資源。經(jīng)過實(shí)踐證明使用該設(shè)計(jì)比購買專用處理芯片MVB控制器大大節(jié)省了成本。
參考文獻(xiàn)
[1] ?ADTRANZ. Multifunction vehicle bus controller data sheet(Revision)[Z]. Switzerland: Adtranz.1997.
[2] ?IEC61357-1 Part 1. Train communication network[S],1999.
[3] ?蔡穎.MVB網(wǎng)絡(luò)接口單元的SOC解決方案.沿海企業(yè)與科技,2005,(4):139-140.
[4] ?JIMENEZ J, JOSE M. Comparison of two designs for the?multifunction vehicle bus IEEE transactions on computeraided design of integrated circuits and systems : accepted?for future publication. Volume PP,? Issue 99, 2005:1-1.
[5] ?王鋒.基于FPGA的MVB1類設(shè)備網(wǎng)卡的設(shè)計(jì)[J]. 機(jī)車電傳動,2004,(6):21-23.
[6] ?BONSEN, G A. The multifunction vehicle bus (MVB)?factory communication systems. 1995.WFCS ’95, Proceed-
?ings., 1995 IEEE International Workshop on 4-6 Oct.?1995 Page(s):27-34.
[7] ?JIMENEZ J, MARTIN J L, CUADRADO C et al. A topdown design for the train communication network industrial ?technology.2003 IEEE International Conference on Volume?2,10-12 Dec. 2003 Page(s):1000-1005.
[8] ?International electrotechnical commission, IEC 61375-3,Clause 3: Multifunction Vehicle Bus, 1999.

?

《電子技術(shù)應(yīng)用》2007年第2期

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 琪琪色原网站在线观看| 久久人人爽爽爽人久久久| 老司机亚洲精品影院在线观看| 国产线视频精品免费观看视频| 丰满少妇人妻HD高清大乳在线| 欧美国产日韩a在线观看| 免费萌白酱国产一区二区三区| 香蕉在线精品视频在线观看6| 国产超碰人人做人人爽av| 一级特黄aaa大片在线观看| 日韩欧美中文字幕一区| 亚洲欧洲日韩在线电影| 精品久久久久久久免费加勒比| 国产免费无码一区二区视频| 10天的爱人下载| 天天操天天干天天射| 中文字幕免费在线看线人动作大片| 机机对在一起30分钟软件下载| 亚洲视频一区二区在线观看| 美妇又紧又嫩又多水好爽| 国产成人久久91网站下载| 51视频精品全部免费最新| 女人让男人桶30分钟在线视频| 久久99热66这里只有精品一| 最近中文字幕在线mv视频在线| 亚洲欧美日韩视频一区| 高清无码一区二区在线观看吞精 | 一本色道久久88综合亚洲精品高清 | 最新中文字幕av专区| 午夜视频在线观看视频| 91精品国产人成网站| 国产精选之刘婷野战| 一本大道道无香蕉综合在线| 日本成人免费在线观看| 免费不卡中文字幕在线| 窝窝午夜看片国产精品人体宴| 无码专区HEYZO色欲AV| 亚洲AV无码成人黄网站在线观看| 正在播放国产乱子伦视频| 免费观看的a级毛片的网站| 色片在线免费观看|