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

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

在FPGA程序編寫(xiě)時(shí),采用狀態(tài)機完成邏輯的設計,分別包括初始化狀態(tài)、空閑狀態(tài)、查詢(xún)狀態(tài)、數據接收狀態(tài)、數據發(fā)送狀態(tài)。
3 結論
在系統設計過(guò)程中,采用ALTERA公司的EP1C6型FPGA進(jìn)行設計,在Quartus II環(huán)境中利用Verilog HDL編程產(chǎn)生SJA1000的片選信號、地址鎖存信號以及讀寫(xiě)信號等,這些信號共同驅動(dòng)SJA1000完成數據的發(fā)送和接收。在采用FPGA實(shí)現對 SJA1000的邏輯控制過(guò)程中,采用Quartus II中的SignalTap II Logic Analyzer工具對FPGA各接口信號進(jìn)行了測量,經(jīng)檢查各種邏輯均符合SJA1000的接口時(shí)序要求。
基于FPGA的飛行模擬器通信接口設計主要由Verilog語(yǔ)言進(jìn)行描述,易于修改和移植,同時(shí)由于FPGA的I/O豐富,還可以將模擬器中一些常用的開(kāi)關(guān)量連接到FPGA上,這樣就可以將多種功能集成在一個(gè)FPGA上,相較于采用單片機控制SJA1000實(shí)現CAN總線(xiàn)通信,本設計方案可擴展性好,穩定性高,能降低成本、系統體積及功耗,在飛行模擬器領(lǐng)域中具有廣泛的應用前景。
評論