新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于BU65170與單片機系統的RT設計與實現

        基于BU65170與單片機系統的RT設計與實現

        作者: 時間:2012-01-31 來源:網絡 收藏

        1 引言:

        1553B總線是一種時分制指令響應型串行多路數據傳輸總線,它最早應用于70年代末美國軍用飛機的航電系統中并取得了成功,因其具有一般數據總線所無法比擬的高可靠性和實時性,在很多重要的科技領域都得到了廣泛應用。在我國,近年來1553B總線也廣泛應用于航空航天電子設備、地面車輛系統、艦艇系統等不同的軍事平臺上以及一些民用設備中。本文在所研制的某人造衛星有效載荷測控系統中,基于星上數據管理系統所采用的1553B總線,選用了專門用于 RT模式的總線協議芯片BU65170,設計了BU65170與單片機控制器的硬件接口,編制了BU65170的初始化和控制軟件,最終實現了有效載荷對星上數據管理系統所發的內部指令、數據注入以及廣播時間碼的接收,同時將有效載荷測量數據打包傳輸到1553B總線上。

        2BU65170芯片介紹

        BU65170是DDC公司的第五代1553產品,它構成了MCU處理器與1553B總線間的智能接口。BU65170的內部結構如圖1所示。

        圖1 BU65170 內部結構圖

        如圖1所示:BU65170可選擇在12MHZ和16MHZ兩種時鐘頻率下工作。芯片內部具有4K×16靜態數據存儲器以及17個功能寄存器。還集成了編碼/解碼器,雙收發器和協議處理器,數據按一定的協議經編碼/解碼器處理,通過雙收發器A/B來完成與1553B總線間的數據傳遞,數據的傳輸速度最大可達1Mbit/s。

        協議控制器和存儲管理器使BU65170具有許多增強型的功能:數據的傳輸可以選擇在、雙緩沖、模式下進行。對這三種數傳模式的靈活運用不但能保證指令和數據收發的實時性,還支持大量的數據低誤碼率的快速傳輸;提供對消息的非法檢測功能。對于來自總線上的消息,協議控制器根據非法指令表初始化的內容對其進行判斷,響應合法的消息,對無用的消息加以非法屏蔽。這樣可大大的提高系統的工作效率。

        BU65170通過中斷接口邏輯的控制可產生多種可屏蔽中斷。芯片內部集成的中斷控制寄存器和中斷狀態寄存器。中斷控制寄存器用來允許或屏蔽不同類型中斷,當有中斷服務請求時,CPU可以通過查詢中斷狀態寄存器來判斷引發中斷的消息類型,從而進行相應的控制操作。

        BU65170與MCU接口簡單,可應用于8位或16位單片機系統中,并有多種接口方式,故在測控系統的RT設計時得到廣泛的應用。

        3BU65170與單片機的硬件接口

        圖2給出了我們設計的BU65170作為接口芯片與單片機及星上1553B總線間的硬件接口示意圖。

        BU65170芯片的部分功能引腳介紹如下:

        MSB/LSB:高低字節判定位;

        POLARITY-SEL:在8位緩沖模式下,該腳為邏輯“0”時,MSB/LSB低電平時訪問低字節,高電平時訪問高字節;該腳為邏輯“1”時,MSB/LSB低電平時訪問高字節,高電平時訪問低字節;

        TRIGGER-SEL:在8位緩沖模式下,TRIGGER-SEL表示一對字節的傳輸規則。該腳為邏輯“0”時,讀、寫傳輸順序為先低字節后高字節;該腳為邏輯“1”時,讀、寫傳輸順序為先高字節后低字節;

        MEM/REG:寄存器和存儲器選擇位,低電平時訪問寄存器,高電平時訪問存儲器;

        ADDR-LAT:地址鎖存,高電平時,讀取地址,低電平時,鎖存地址;

        RD/WR:讀寫控制信號,高電平時,執行讀操作,低電平時,執行寫操作;

        MSTCLR:復位端,接100ns負脈沖對芯片進行復位;

        CLKIN:時鐘信號輸入端;

        INT:中斷請求信號,可程控選擇脈沖觸發和電平觸發兩種形式。脈沖觸發:輸出大于

        500ns的負脈沖信號,觸發中斷服務請求;電平觸發時:低電平觸發中斷服務請求。

        如圖2所示:為簡化設計,節約線路板空間,本文BU65170采用與單片機相同的12M時鐘輸入。

        BU65170芯片內部的寄存器和數據存儲器讀寫時均是按16位操作的(每個寄存器占兩個字節),而本文所應用的MCU是8位單片機,故對高低字節的操作采取分時讀寫的模式。先操作低字節,后操作高字節。為了軟件設計時尋址簡單,將BU65170的MSB/LSB引腳連接到單片機的地址線的最低位 P0.0上。這樣單片機可以很方便的讀寫BU65170內部寄存器或SRAM地址單元的高低字節。

        當有通訊事件到來時,BU65170的 腳會產生一個中斷信號。將該信號送給單片機的外部中斷0,并設置相應的軟件中斷優先級,這樣就能保證通訊事件能夠及時被單片機獲知并做相關處理。

        由于單片機對BU65170片內16位數據的高低字節采用分時讀寫的操作,故其高字節數據線D8-D15和低字節數據線D0-D7均直接連接到單片機的數據總線P0口上。為保證通訊時的電流輸出,在P0口與兩數據線間使用了總線驅動芯片74LS244。

        BU-65170另一端是通過耦合變壓器連接到1553B總線上的,其中A總線和B總線連接方式相同。變壓器選用的是美國DDC公司生產的B-3067。

        4BU65170與單片機接口軟件設計

        BU65170初始上電時,片內的寄存器和靜態數據存儲器的內容都是系統默認的。軟件設計上的第一步就是要對這些功能寄存器和靜態數據存儲器進行初始化。初始化過程中對有寄存器的賦值是有先后順序的。如果順序顛倒會導致初始化的失敗。例如啟動/復位寄存器必須要在初始化的最開始設置。該寄存器的最后一位置1時,BU65170片內所有寄存器和地址單元都復位成上電時默認的狀態。之后通過設置結構寄存器3來啟用增強型功能模式。該功能啟用后,一些 BU65170較前幾代產品所具有的新功能將允許被使用。以上寄存器設置完畢后,其它部分則需按照設計要求進行相關初始化。整個初始化過程的流程圖如如3 所示:


        圖3初始化子程序框圖 圖4中斷服務程序框圖

        針對1553B總線上的不同消息類型以及設計的要求,對于數據和指令的通訊采用三種數據傳輸模式:模式、雙緩沖模式和模式[2]。模式主要特點是簡單,每一個接收、發送子地址都對應一固定的數據塊(該數據塊可設定),對于每條新消息主處理器可直接查詢數據塊。雙緩沖模式為主處理器提供一種接收最新、最完整有效數據的方法。該模式下,一個接收子地址對應兩個數據塊,任何時候都只有一個數據塊是激活的,下一條接收消息的數據將存儲在激活的數據塊中,當一條有效的消息結束后,BU65170將在兩個數據塊上切換。進行大量的數據傳輸通訊采用模式。循環緩沖區大小在初始化中設定,最小位128字,最大為8192字。

        初始化中斷屏蔽寄存器時,主要打開兩種中斷。一種是消息結束(EOM)中斷,另一種是循環緩沖翻轉中斷。為了便于消息查詢,將消息描述棧指針指向棧頂。查詢表和子地址控制字初始化指定了通訊過程中數據的接收和發送所利用的子地址以及采用的數據傳輸模式。該部分是初始化軟件中最重要的環節。本文將數據注入設置在接收子地址2,內部指令設置在接收子地址8,接收方式均為單消息模式;廣播時間設置在接收子地址4,接收方式為雙緩沖模式;將測量數據打包發送給總線的事件設置在發送子地址9,發送方式為循環緩沖。同時對非法指令表進行初始化,僅將以上通訊事件設置為本系統所能接受的合法消息。

        在處理1553B總線上的通訊事件時,采用中斷查詢的方法。當有外部中斷0有中斷信號時,單片機控制器通過外部中斷0的入口地址跳轉到中斷服務程給出序中。如圖4所示:首先查詢是否是EOM中斷,由于消息結束后,BU65170中命令字寄存器中的內容會被修改,故查詢該寄存器。如果其中內容是內部指令或數據注入消息的命令代碼,則執行相應的總線數據接收控制子程序,否則繼續查詢。為防止多個事件同時到來引起中斷重疊時丟失事件響應的問題,在內部指令和數據注入控制子程序結束后進一步查詢中斷狀態寄存器。該寄存器的低字節第五位表征循環緩沖翻轉中斷的狀態。邏輯1表示循環緩沖區翻轉,邏輯0則循環緩沖區沒有翻轉。如果該位為高電平,則清空該位后執行相應的子程序來控制測量數據發送。

        總線通訊中還有一種被稱作廣播時間的通訊事件,該事件每秒鐘發生一次。由星上數據管理系統廣播發送當前時間。有效載荷接收并校對自已的時鐘系統。設計接收該類型消息時,我們采用雙緩沖模式。消息到來時,不觸發中斷。初始化設置正確后,該消息的接收完全由BU65170芯片自動完成。當測控系統使用時間時,直接到循環緩沖子地址對應的數據塊中讀取。

        在調試過程中,筆者發現,單片機對BU65170芯片內寄存器和靜態數據存儲器的數據存取時,對操作時序要求嚴格,具體遵循以下原則:

        對芯片內地址單元(雙字節)進行寫操作時,兩次操作的間隔不應少于2.5us。

        對芯片內地址單元進行讀操作時,首先應對該地址進行一次空讀。即第一次讀取的數據不能使用,應對該地址重復讀取一遍,第二遍讀出的內容才是實際該地址中的內容。如果需要在連續的地址空間中讀取多個數據,則兩次讀操作的時間間隔也不應少于2.5us。

        4 結束語

        本文在介紹1553B總線協議芯片BU65170的基礎上,在以單片機為核心,以BU65170為通訊接口的有效載荷測控系統中,設計了軟硬件接口,將有效載荷作為一個RT與星上數據管理系統實現了通訊連接。在數次整星電聯試試驗中,與數據管理系統的通訊及時準確、穩定可靠。接口電路簡單,易于實現,軟件設計模塊化、規范化,針對不同類型消息采用不同通訊模式的方法大大提高了系統通訊的可靠性和穩定性。該接口方式對于嵌入式系統與1553B總線連接更具有廣泛的適用性。

        參考文獻:

        1.馬捷中等 1553B總線控制器遠程終端軟件設計[J] 測控技術,2003

        2.趙希權等 循環冗余校驗在單片機無線通信中的應用 微計算機信息 2005.7-2

        3.飛機內部時分制指令/響應式多路傳輸數據總線 美國軍用標準,1978

        4.李華 MCS-51系列單片機實用接口技術 北京航空航天大學出版社1993.1



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 庆阳市| 琼结县| 民勤县| 龙游县| 安丘市| 南皮县| 汉中市| 华蓥市| 南京市| 巴楚县| 浙江省| 柞水县| 焉耆| 甘德县| 高青县| 乐山市| 馆陶县| 芒康县| 峨边| 涿鹿县| 阿拉善右旗| 财经| 陵水| 隆德县| 会同县| 息烽县| 昌乐县| 花莲市| 南华县| 新河县| 许昌县| 依兰县| 武威市| 黎城县| 平舆县| 吐鲁番市| 北票市| 新丰县| 新晃| 巴楚县| 牟定县|