基于DSP的1553B總線接口電路設計

4 軟件驅動設計
接口的軟件驅動設計主要應用C語言與匯編語言混合編程方式,這樣有著較好的升級性和高效性。軟件程序目的就是通過上位機的命令來控制接口卡完成系統啟動、自檢、自檢返回、系統停止等工作。在系統啟動后,完成對機載火控數據的讀取和采集。軟件驅動的主要功能是要完成C6713和BU-61864的初始化和中斷服務程序,控制RAM空間的自檢、與上位機的通信、中斷響應、總線數據的讀取發送。驅動程序的結構框圖如圖5所示。

4.1 芯片的初始化
本文最終將用于機載火控數據的采集工作,1553B總線接口卡主要是工作在MT模式下,記錄來自機載火控系統的飛行數據,為后期的數據記錄、數據分析做好準備。
1)對BU-61864的初始化
在MT模式下,要完成對BU-61864的初始化設置包括初始化相應寄存器,設置中斷屏蔽,使其能正確實現MT功能。對BU-61864的初始化有非常嚴格的順序,順序不對可能引起芯片初始化失敗,有關寄存器的配置順序如下:
①首先進行軟件復位,即將開始/復位寄存器設置為0X0001,使BU-61864進入復位。
②配置寄存器3,使其為0X8000,進入增強模式。
③中斷屏蔽寄存器設置成0X0001,使能消息完成中斷。
④初始化地址查找表、非法指令表、子地址寄存器等。
⑤配置寄存器1設置為0X5000,BU-61864進入消息監測模式。
⑥配置寄存器2設置成0X0008,使中斷方式為低電平中斷。
⑦將開始/復位寄存器配置成0X0002,來啟動BU-61864的MT模式。
BU-61864初始化流程圖如圖6所示。

2)對C6713的初始化
對C6713的初始化也是設置相關寄存器,但是它的主要是有關寄存器的中斷和串口設置。包括:中斷屏蔽寄存器(IMR)、中斷使能寄存器(IER)、中斷標志寄存器(IFR)、中斷控制寄存器(ICR),波特率設置寄存器(SCIBAUD)等。同時,C6713還要根據選擇來決定通過C語言程序還是EMDA搬移數據,據此初始化相應寄存器。若用C語言編寫,需要使能EINT4中斷。若用EMDA,可以不需要CPU參與,減輕工作壓力,那么初始化內容有:使能全局中斷、使能EMDA完成中斷、對讀通道事件寄存器清零、對讀寫通道的CIPR清零、使能讀寫通道的通道中斷使能寄存器。
4.2 自檢任務描述
自檢模塊的主要任務就是完成對BU-61864的4kbRAM空間的檢查,檢測RAM空間是否出現錯誤。具體的操作方法可以向RAM內存空間寫入連續的數據,然后讀出來,與原數據進行比較看是否相等,如果是不相等的,那么表示有錯。最后將記錄下的所有的錯誤數通過串行口發送給上位機。
4.3 查詢任務描述
在數據查詢模塊中,通過查詢“讀總線數據標志位”來進行1553B總線數據的接收、轉發和上位機命令的讀取。若“讀總線數據標志位”的查詢結果有效,C6713就從BU-61864命令堆棧相應的地址處對4個地址單元的內容進行依次讀取。4個地址單元的內容分別為數據塊狀態字、時間標志字、數據塊指針和接收到的命令字。然后根據命令字和數據塊指針到數據堆棧讀取總線數據,最后將接收到的總線上的數據轉發出去。通過查詢“讀串口數據命令標志位”是否有效來進行接收上位機的命令,根據命令實現相應功能。
為了確保與上位機握手的可靠性,在查詢程序中設置一個數據緩沖區。并且在查詢程序中判斷緩沖區中的數據,看收到的命令是否是一幀完整的命令。若是,則根據不同的命令設置系統的啟動、停止、自檢等相應標志,并將緩沖區中的數據依次向前移動一幀,數據指針也向前移動一幀。
5 結束語
機載火控數據采集記錄逐漸向高速、高效、大容量存儲的方向發展。DSP芯片的出現和發展以其出色的運算能力、高效的指令集、智能外設、大容量的片內存儲器和大范圍的尋址能力使得機載火控數據采集向著更好的方向發展。
本文對1553B數據總線協議進行了詳細介紹,結合C6713的性能特點,通過與協議芯片BU-61864的硬件接口和軟件設計,實現了與1553B數據總線接口的MT設計。本文用途明確,將為機載火控數據的采集記錄有著實用價值。
評論