基于DSP的1553B總線接口電路設(shè)計(jì)
4 軟件驅(qū)動設(shè)計(jì)
接口的軟件驅(qū)動設(shè)計(jì)主要應(yīng)用C語言與匯編語言混合編程方式,這樣有著較好的升級性和高效性。軟件程序目的就是通過上位機(jī)的命令來控制接口卡完成系統(tǒng)啟動、自檢、自檢返回、系統(tǒng)停止等工作。在系統(tǒng)啟動后,完成對機(jī)載火控?cái)?shù)據(jù)的讀取和采集。軟件驅(qū)動的主要功能是要完成C6713和BU-61864的初始化和中斷服務(wù)程序,控制RAM空間的自檢、與上位機(jī)的通信、中斷響應(yīng)、總線數(shù)據(jù)的讀取發(fā)送。驅(qū)動程序的結(jié)構(gòu)框圖如圖5所示。
4.1 芯片的初始化
本文最終將用于機(jī)載火控?cái)?shù)據(jù)的采集工作,1553B總線接口卡主要是工作在MT模式下,記錄來自機(jī)載火控系統(tǒng)的飛行數(shù)據(jù),為后期的數(shù)據(jù)記錄、數(shù)據(jù)分析做好準(zhǔn)備。
1)對BU-61864的初始化
在MT模式下,要完成對BU-61864的初始化設(shè)置包括初始化相應(yīng)寄存器,設(shè)置中斷屏蔽,使其能正確實(shí)現(xiàn)MT功能。對BU-61864的初始化有非常嚴(yán)格的順序,順序不對可能引起芯片初始化失敗,有關(guān)寄存器的配置順序如下:
①首先進(jìn)行軟件復(fù)位,即將開始/復(fù)位寄存器設(shè)置為0X0001,使BU-61864進(jìn)入復(fù)位。
②配置寄存器3,使其為0X8000,進(jìn)入增強(qiáng)模式。
③中斷屏蔽寄存器設(shè)置成0X0001,使能消息完成中斷。
④初始化地址查找表、非法指令表、子地址寄存器等。
⑤配置寄存器1設(shè)置為0X5000,BU-61864進(jìn)入消息監(jiān)測模式。
⑥配置寄存器2設(shè)置成0X0008,使中斷方式為低電平中斷。
⑦將開始/復(fù)位寄存器配置成0X0002,來啟動BU-61864的MT模式。
BU-61864初始化流程圖如圖6所示。
2)對C6713的初始化
對C6713的初始化也是設(shè)置相關(guān)寄存器,但是它的主要是有關(guān)寄存器的中斷和串口設(shè)置。包括:中斷屏蔽寄存器(IMR)、中斷使能寄存器(IER)、中斷標(biāo)志寄存器(IFR)、中斷控制寄存器(ICR),波特率設(shè)置寄存器(SCIBAUD)等。同時(shí),C6713還要根據(jù)選擇來決定通過C語言程序還是EMDA搬移數(shù)據(jù),據(jù)此初始化相應(yīng)寄存器。若用C語言編寫,需要使能EINT4中斷。若用EMDA,可以不需要CPU參與,減輕工作壓力,那么初始化內(nèi)容有:使能全局中斷、使能EMDA完成中斷、對讀通道事件寄存器清零、對讀寫通道的CIPR清零、使能讀寫通道的通道中斷使能寄存器。
4.2 自檢任務(wù)描述
自檢模塊的主要任務(wù)就是完成對BU-61864的4kbRAM空間的檢查,檢測RAM空間是否出現(xiàn)錯(cuò)誤。具體的操作方法可以向RAM內(nèi)存空間寫入連續(xù)的數(shù)據(jù),然后讀出來,與原數(shù)據(jù)進(jìn)行比較看是否相等,如果是不相等的,那么表示有錯(cuò)。最后將記錄下的所有的錯(cuò)誤數(shù)通過串行口發(fā)送給上位機(jī)。
4.3 查詢?nèi)蝿?wù)描述
在數(shù)據(jù)查詢模塊中,通過查詢“讀總線數(shù)據(jù)標(biāo)志位”來進(jìn)行1553B總線數(shù)據(jù)的接收、轉(zhuǎn)發(fā)和上位機(jī)命令的讀取。若“讀總線數(shù)據(jù)標(biāo)志位”的查詢結(jié)果有效,C6713就從BU-61864命令堆棧相應(yīng)的地址處對4個(gè)地址單元的內(nèi)容進(jìn)行依次讀取。4個(gè)地址單元的內(nèi)容分別為數(shù)據(jù)塊狀態(tài)字、時(shí)間標(biāo)志字、數(shù)據(jù)塊指針和接收到的命令字。然后根據(jù)命令字和數(shù)據(jù)塊指針到數(shù)據(jù)堆棧讀取總線數(shù)據(jù),最后將接收到的總線上的數(shù)據(jù)轉(zhuǎn)發(fā)出去。通過查詢“讀串口數(shù)據(jù)命令標(biāo)志位”是否有效來進(jìn)行接收上位機(jī)的命令,根據(jù)命令實(shí)現(xiàn)相應(yīng)功能。
為了確保與上位機(jī)握手的可靠性,在查詢程序中設(shè)置一個(gè)數(shù)據(jù)緩沖區(qū)。并且在查詢程序中判斷緩沖區(qū)中的數(shù)據(jù),看收到的命令是否是一幀完整的命令。若是,則根據(jù)不同的命令設(shè)置系統(tǒng)的啟動、停止、自檢等相應(yīng)標(biāo)志,并將緩沖區(qū)中的數(shù)據(jù)依次向前移動一幀,數(shù)據(jù)指針也向前移動一幀。
5 結(jié)束語
機(jī)載火控?cái)?shù)據(jù)采集記錄逐漸向高速、高效、大容量存儲的方向發(fā)展。DSP芯片的出現(xiàn)和發(fā)展以其出色的運(yùn)算能力、高效的指令集、智能外設(shè)、大容量的片內(nèi)存儲器和大范圍的尋址能力使得機(jī)載火控?cái)?shù)據(jù)采集向著更好的方向發(fā)展。
本文對1553B數(shù)據(jù)總線協(xié)議進(jìn)行了詳細(xì)介紹,結(jié)合C6713的性能特點(diǎn),通過與協(xié)議芯片BU-61864的硬件接口和軟件設(shè)計(jì),實(shí)現(xiàn)了與1553B數(shù)據(jù)總線接口的MT設(shè)計(jì)。本文用途明確,將為機(jī)載火控?cái)?shù)據(jù)的采集記錄有著實(shí)用價(jià)值。
評論