魏艷艷 袁曉軍 蔡葉芳 牛少平
摘? ?要:為了滿足飛管系統(tǒng)對1394總線配置表存儲器存儲容量大、讀取速度快、封裝小、功耗低等要求,文章提出了采用SPI串行Flash存儲1394總線配置表。在對SPI協(xié)議和SPI串行Flash充分研究的基礎(chǔ)上進行了1394總線配置表加載的系統(tǒng)設(shè)計、關(guān)鍵功能分析設(shè)計和RTL設(shè)計實現(xiàn),最后通過虛擬仿真驗證、FPGA原型驗證及后仿真驗證,結(jié)果表明該設(shè)計各項功能正確,性能滿足系統(tǒng)要求。
關(guān)鍵詞:串行外設(shè)接口;1394;配置表;循環(huán)冗余
軍用1394總線能夠滿足航空航天等高安全領(lǐng)域?qū)偩€高可靠、低延遲、確定性的需求,目前已經(jīng)成功應(yīng)用于航電和飛管系統(tǒng)中。楊峰等[1]、王宣明等[2]、馬寧等[3]對1394總線協(xié)議、AS5643協(xié)議進行了研究并突破了關(guān)鍵技術(shù),還進行了機上產(chǎn)品的研發(fā)。飛管系統(tǒng)1394總線網(wǎng)絡(luò)中控制計算機(Control Computer,CC)節(jié)點和遠程節(jié)點(Remote Node,RN)的通信都是基于1394總線配置表進行消息收發(fā)調(diào)度控制的,因此1394總線配置表的定義、管理、維護和存儲在飛管系統(tǒng)網(wǎng)絡(luò)通信中起著至關(guān)重要的作用。
中航工業(yè)西安航空計算技術(shù)研究所正在進行RN芯片的研制,1394總線配置表加載設(shè)計是其中一部分,為滿足1394總線配置表存儲器的存儲容量大、讀取速度快、封裝小、功耗低等要求,設(shè)計上提出采用串行外設(shè)接口(Serial Peripheral Interface,SPI)串行Flash進行1394總線配置表的存儲,并在充分研究SPI協(xié)議和SPI串行Flash手冊的基礎(chǔ)上進行了1394總線配置表的加載設(shè)計實現(xiàn)。
1? ? 系統(tǒng)設(shè)計
1394總線網(wǎng)絡(luò)中RN芯片主要實現(xiàn)了AS5643協(xié)議處理功能以及與主機接口、與鏈路層芯片接口、與SPI接口通信等功能。RN芯片的體系架構(gòu)如圖1所示。
SPI接口模塊主要實現(xiàn)了主機接口與SPI接口的時序轉(zhuǎn)換及SPI控制器功能。SPI控制器支持主設(shè)備,支持4種傳輸模式,時鐘頻率可編程,最大傳輸數(shù)據(jù)位128 bit。
配置表自動加載模塊主要實現(xiàn)芯片一上電通過SPI接口自動從片外Flash中讀取配置表內(nèi)容,然后加載到寄存器以及發(fā)送配置表和接收配置表中,并支持對配置表內(nèi)容進行循環(huán)冗余(Cyclic Redundancy Check,CRC)校驗功能。
AS5643協(xié)議處理模塊主要實現(xiàn)AS5643協(xié)議規(guī)定的RN協(xié)議處理功能以及主機軟件在獲得訪問片外Flash的權(quán)限下通過SPI接口對片外Flash進行讀寫功能。
主機接口模塊主要實現(xiàn)處理器對芯片內(nèi)部寄存器、存儲器資源的訪問。
發(fā)送配置表和接收配置表分別用于存儲發(fā)送消息、接收消息的配置信息,大小為32×32 bit,支持主機讀訪問和邏輯讀寫訪問。
2? ? 關(guān)鍵功能設(shè)計
2.1? 配置表內(nèi)容
系統(tǒng)出于可生產(chǎn)以及可維護性考慮,將網(wǎng)絡(luò)中所有RN的配置信息都保存在一個配置表中,上電時給RN一個可唯一識別的設(shè)備號,芯片根據(jù)該設(shè)備號選擇對應(yīng)的配置表進行加載。配置表包含配置表頭和配置表兩部分,配置表頭規(guī)定了配置表版本號、STOF周期、STOF門限、1394總線傳輸速度、消息偏移等,配置表規(guī)定了每個設(shè)備的消息數(shù)目,每條消息的配置信息等。
2.2? 自動加載
配置表自動加載具體操作如下:首先,芯片上電后通過SPI接口進行SPI初始化配置。芯片作為主設(shè)備,應(yīng)該與從設(shè)備片外Flash的配置相符才可以通信。其次,加載配置表頭,將配置表頭的信息存入相應(yīng)的寄存器中。最后,加載配置表,將消息的配置信息分別存入發(fā)送配置表和接收配置表中,其他配置表信息存入寄存器中。
2.3? 在線加載
設(shè)計上支持主機通過SPI接口對片外Flash進行在線加載配置表,這樣便于機上產(chǎn)品設(shè)備配置表的更新和維護,而不用拆卸設(shè)備。
主機在線加載配置表的過程中,芯片保持在原工作模式,新的配置表內(nèi)容在芯片復(fù)位后才會起作用。主機必須獲得訪問片外Flash的權(quán)限,才可以讀寫片外Flash,從而實現(xiàn)在線加載功能。
在線加載任務(wù)主要包括:通過操作SPI寄存器,進行讀Flash操作、寫Flash操作,將總線配置表數(shù)據(jù)存儲在片外Flash芯片中。寫Flash操作首先要對Flash進行擦除操作(包含輸入寫使能命令、擦除命令),才能進行寫操作(包含輸入寫使能命令、編程命令、寫Flash數(shù)據(jù)),如圖2所示。讀Flash操作,輸入讀指令和讀地址后,數(shù)據(jù)即從Flash中輸出,如圖3所示。
2.4? CRC校驗
配置表數(shù)據(jù)的正確性影響著1394總線網(wǎng)絡(luò)節(jié)點通信的可靠性和安全性,因此必須在設(shè)計中增加校驗功能,檢測配置表數(shù)據(jù)是否發(fā)生錯誤。由于CRC能同時檢測和抗干擾,是一種高效、可靠的差錯校驗法[4],故該設(shè)計對配置表進行了CRC校驗。
CRC校驗算法的多項式為X16+X15+X2+1。從Flash讀數(shù)據(jù)的同時,CRC校驗也同時進行。配置表連續(xù)加載3次,若3次CRC都校驗錯誤,則芯片不能收發(fā)消息。
3? ? 仿真驗證
文章采用Verilog硬件語言硬件描述語言(Hardware Description Language,HDL)實現(xiàn)了寄存器轉(zhuǎn)換級電路(Register Transfer Level,RTL)設(shè)計,并搭建虛擬仿真平臺編寫測試用例進行功能驗證,使用Xilinx XC5VLX330T進行現(xiàn)場可編程門陣列(Field-Programmable Gate Array,F(xiàn)PGA)綜合生成可編程文件,外接MPC8245處理器,模擬主機運行測試程序在FPGA原型驗證平臺上進行功能驗證。最后采用CMOS 0.13 μm工藝進行專用集成電路(Application Specific Integrated Circuit,ASIC)綜合,將生成的門級網(wǎng)表加入SDF文件后進行后仿真驗證。
4? ? 結(jié)語
文章基于系統(tǒng)要求提出了采用SPI串行Flash存儲1394總線配置表,并進行了系統(tǒng)設(shè)計,對關(guān)鍵功能進行了分析,通過虛擬平臺驗證,F(xiàn)PGA原型驗證和后仿真驗證,該設(shè)計各項功能都正確,性能也滿足系統(tǒng)要求。該設(shè)計已經(jīng)應(yīng)用在RN芯片研制中,現(xiàn)已成功流片,下一步工作主要是樣片驗證和系統(tǒng)應(yīng)用測試。
[參考文獻]
[1]楊峰,陳偉,王宣明,等.1394總線關(guān)鍵協(xié)議分析與研究[J].電子技術(shù)與應(yīng)用,2016(6):7-10.
[2]王宣明,田澤,魏艷艷,等.SAE AS5643協(xié)議分析及設(shè)計實現(xiàn)[J].計算機技術(shù)與發(fā)展,2015(7):213-216.
[3]馬寧,王宣明,鄭斐.飛機管理系統(tǒng)1394 總線AS5643協(xié)議的設(shè)計與實現(xiàn)[J].航空計算技術(shù),2013(6):122-124.
[4]強小燕,史興強,劉夢影.CRC校驗在SPI接口設(shè)計中的實現(xiàn)[J].電子與封裝,2018(11):30-35.
Design and implementation of 1394 bus configuration table loading based on the SPI interface
Wei Yanyan, Yuan Xiaojun, Cai Yefang, Niu Shaoping
(Xian Aeronautics Computing Technique Research Institute, AVIC, Xian 710068, China)
Abstract:In order to meet the requirements of flight control system on 1394 bus configuration table memory, such as large storage capacity, fast reading speed, small package and low power consumption, SPI serial Flash was proposed to store 1394 bus configuration table in this paper. On the basis of full research on the SPI protocol and SPI serial Flash, the system design, the key function analysis and design and the RTL design of the 1394 bus configuration table loading were carried out. Finally, though the virtual simulation verification, the FPGA prototype verification and the post simulation verification, the results showed that the design was correct in various functions and the performance met the requirements of the system.
Key words:serial peripheral interface; 1394; configuration table; cyclic redundancy check