基于DSP的1553B總線系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
通過(guò)對(duì)以上寄存器的配置。即可完成BC模式的操作。其初始化流程圖如圖4所示。本文引用地址:http://www.ex-cimer.com/article/151369.htm
4.2 自檢模塊
自檢模塊主要完成對(duì)BU-64843的4 kB RAM空間的檢查,看是否出現(xiàn)錯(cuò)誤。實(shí)現(xiàn)方法是向該內(nèi)存空間寫入連續(xù)的數(shù)據(jù),然后讀出來(lái)比較看是否相等,若不相等則表示有錯(cuò),記錄下所有的錯(cuò)誤數(shù)并把這個(gè)錯(cuò)誤數(shù)通過(guò)串行口發(fā)送給上位機(jī)。
4.3 中斷模塊
驅(qū)動(dòng)程序的中斷模塊分為2部分:1)用于接收1553B總線到來(lái)的數(shù)據(jù),響應(yīng)1553B總線數(shù)據(jù)的中斷。利用F2812的XINTl,XINTl采用脈沖下降沿觸發(fā)中斷方式;2)用于接收上位機(jī)向DSP發(fā)送的命令,接收上位機(jī)的命令是通過(guò)F2812的串行通信接口(SCI)來(lái)進(jìn)行的,利用F2812的SCIT-XRXINT中斷。在XINTl中斷服務(wù)子程序中設(shè)置“讀總線數(shù)據(jù)標(biāo)志”,在異步串口中斷服務(wù)子程序中設(shè)置“讀串口數(shù)據(jù)命令標(biāo)志”。在查詢模塊中,可以通過(guò)查詢這兩個(gè)標(biāo)志,來(lái)判斷是否有總線數(shù)據(jù)到來(lái)以及是否有上位機(jī)的命令到來(lái)。
4.4 查詢模塊
在查詢模塊中,當(dāng)“讀總線數(shù)據(jù)標(biāo)志位”有效時(shí),F(xiàn)2812就從BU-64843的命令堆棧相應(yīng)地址處開(kāi)始依次讀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ā)出去。
當(dāng)“讀串口數(shù)據(jù)命令標(biāo)志位”有效時(shí),RX接收上位機(jī)的命令,根據(jù)不同的命令實(shí)現(xiàn)相應(yīng)的功能。為了能夠保證與上位機(jī)實(shí)現(xiàn)可靠的握手,在查詢程序中設(shè)置了一個(gè)數(shù)據(jù)緩沖區(qū),在查詢程序中對(duì)緩沖區(qū)中的數(shù)據(jù)進(jìn)行判斷,看是否收到一幀完整的命令。若收到一幀完整的命令,則根據(jù)不同的命令設(shè)置系統(tǒng)的啟動(dòng)、停止、自檢等相應(yīng)標(biāo)志,并將緩沖區(qū)中的數(shù)據(jù)依次向前移動(dòng)一幀,數(shù)據(jù)指針也向前移動(dòng)一幀。
5 結(jié)論
本文對(duì)1553B總線協(xié)議及其接口芯片BU-64843的功能、配置進(jìn)行詳細(xì)說(shuō)明,并介紹了定點(diǎn)DSP TMS320F2812的基本性能和特點(diǎn)。在此基礎(chǔ)上實(shí)現(xiàn)了基于F2812和BU-64843的1553B總線接口的硬件電路和軟件的設(shè)計(jì)。BU-64843作為全3.3 V供電的1553B總線終端之一,方便與DSP芯片F(xiàn)2812連接。BU-64843芯片功能強(qiáng)大,同時(shí)設(shè)置也很復(fù)雜,因此,對(duì)接口芯片的掌握,不但要從硬件接口上入手,還要熟悉其內(nèi)部寄存器的相關(guān)配置。基于DSP的1553B總線接口設(shè)計(jì)方案有效解決了通訊實(shí)時(shí)性要求高的問(wèn)題,對(duì)地面電子檢測(cè)系統(tǒng)的應(yīng)用具有參考價(jià)值。
評(píng)論