新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的飛行模擬器通信接口設(shè)計(jì)是什么樣的?

基于FPGA的飛行模擬器通信接口設(shè)計(jì)是什么樣的?

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

本文引用地址:http://m.butianyuan.cn/article/201808/385785.htm

2.2 數(shù)據(jù)發(fā)送邏輯

數(shù)據(jù)發(fā)送邏輯需要FPGA通過(guò)模擬總線(xiàn)的方法對(duì)SJA1000進(jìn)行控制,SJA1000的發(fā)送緩沖區(qū)的寄存器共有11個(gè)字節(jié),其中前3個(gè)字節(jié)分別是幀信息字節(jié)和兩個(gè)標(biāo)識(shí)碼,后8個(gè)字節(jié)是數(shù)據(jù)。發(fā)送時(shí),用戶(hù)需要將待發(fā)送的數(shù)據(jù)按特定的格式組合成一幀報(bào)文,送入SJA1000的發(fā)送緩沖區(qū)中,然后啟動(dòng) SJA1000發(fā)送即可。需要注意的是,在向SJA1000發(fā)送緩存區(qū)送報(bào)文之前,必須先判斷發(fā)送緩沖區(qū)是否鎖定,如果鎖定則等待;判斷上次發(fā)送是否完成,如未完成則需等待發(fā)送完成。總線(xiàn)控制器寫(xiě)周期的時(shí)序圖如圖2所示。


2.3 數(shù)據(jù)接收邏輯

與數(shù)據(jù)發(fā)送邏輯類(lèi)似,從接收緩沖區(qū)中讀取一條報(bào)文也需要連續(xù)讀取11個(gè)字節(jié),數(shù)據(jù)接收邏輯除了正常的報(bào)文數(shù)據(jù)接收,還要實(shí)現(xiàn)其他情況的處理。對(duì)接收緩沖區(qū)的數(shù)據(jù)讀取完畢后要釋放CAN接收緩沖區(qū)。圖3所示為總線(xiàn)控制器讀周期的時(shí)序圖。


在FPGA程序編寫(xiě)時(shí),采用狀態(tài)機(jī)完成邏輯的設(shè)計(jì),分別包括初始化狀態(tài)、空閑狀態(tài)、查詢(xún)狀態(tài)、數(shù)據(jù)接收狀態(tài)、數(shù)據(jù)發(fā)送狀態(tài)。

3 結(jié)論

在系統(tǒng)設(shè)計(jì)過(guò)程中,采用ALTERA公司的型FPGA進(jìn)行設(shè)計(jì),在Quartus II環(huán)境中利用Verilog HDL編程產(chǎn)生SJA1000的片選信號(hào)、地址鎖存信號(hào)以及讀寫(xiě)信號(hào)等,這些信號(hào)共同驅(qū)動(dòng)SJA1000完成數(shù)據(jù)的發(fā)送和接收。在采用FPGA實(shí)現(xiàn)對(duì) SJA1000的邏輯控制過(guò)程中,采用Quartus II中的SignalTap II Logic Analyzer工具對(duì)FPGA各接口信號(hào)進(jìn)行了測(cè)量,經(jīng)檢查各種邏輯均符合SJA1000的接口時(shí)序要求。

基于FPGA的通信接口設(shè)計(jì)主要由Verilog語(yǔ)言進(jìn)行描述,易于修改和移植,同時(shí)由于FPGA的I/O豐富,還可以將模擬器中一些常用的開(kāi)關(guān)量連接到FPGA上,這樣就可以將多種功能集成在一個(gè)FPGA上,相較于采用單片機(jī)控制SJA1000實(shí)現(xiàn)通信,本設(shè)計(jì)方案可擴(kuò)展性好,穩(wěn)定性高,能降低成本、系統(tǒng)體積及功耗,在領(lǐng)域中具有廣泛的應(yīng)用前景。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉