新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于BU65170與單片機(jī)系統(tǒng)的RT設(shè)計(jì)與實(shí)現(xiàn)

基于BU65170與單片機(jī)系統(tǒng)的RT設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2012-01-31 來源:網(wǎng)絡(luò) 收藏

1 引言:

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

2BU65170芯片介紹

BU65170是DDC公司的第五代1553產(chǎn)品,它構(gòu)成了MCU處理器與1553B總線間的智能接口。BU65170的內(nèi)部結(jié)構(gòu)如圖1所示。

圖1 BU65170 內(nèi)部結(jié)構(gòu)圖

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

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

BU65170通過中斷接口邏輯的控制可產(chǎn)生多種可屏蔽中斷。芯片內(nèi)部集成的中斷控制寄存器和中斷狀態(tài)寄存器。中斷控制寄存器用來允許或屏蔽不同類型中斷,當(dāng)有中斷服務(wù)請(qǐng)求時(shí),CPU可以通過查詢中斷狀態(tài)寄存器來判斷引發(fā)中斷的消息類型,從而進(jìn)行相應(yīng)的控制操作。

BU65170與MCU接口簡(jiǎn)單,可應(yīng)用于8位或16位單片機(jī)系統(tǒng)中,并有多種接口方式,故在測(cè)控系統(tǒng)的RT設(shè)計(jì)時(shí)得到廣泛的應(yīng)用。

3BU65170與單片機(jī)的硬件接口

圖2給出了我們?cè)O(shè)計(jì)的BU65170作為接口芯片與單片機(jī)及星上1553B總線間的硬件接口示意圖。

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

MSB/LSB:高低字節(jié)判定位;

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

TRIGGER-SEL:在8位緩沖模式下,TRIGGER-SEL表示一對(duì)字節(jié)的傳輸規(guī)則。該腳為邏輯“0”時(shí),讀、寫傳輸順序?yàn)橄鹊妥止?jié)后高字節(jié);該腳為邏輯“1”時(shí),讀、寫傳輸順序?yàn)橄雀咦止?jié)后低字節(jié);

MEM/REG:寄存器和存儲(chǔ)器選擇位,低電平時(shí)訪問寄存器,高電平時(shí)訪問存儲(chǔ)器;

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

RD/WR:讀寫控制信號(hào),高電平時(shí),執(zhí)行讀操作,低電平時(shí),執(zhí)行寫操作;

MSTCLR:復(fù)位端,接100ns負(fù)脈沖對(duì)芯片進(jìn)行復(fù)位;

CLKIN:時(shí)鐘信號(hào)輸入端;

INT:中斷請(qǐng)求信號(hào),可程控選擇脈沖觸發(fā)和電平觸發(fā)兩種形式。脈沖觸發(fā):輸出大于

500ns的負(fù)脈沖信號(hào),觸發(fā)中斷服務(wù)請(qǐng)求;電平觸發(fā)時(shí):低電平觸發(fā)中斷服務(wù)請(qǐng)求。

如圖2所示:為簡(jiǎn)化設(shè)計(jì),節(jié)約線路板空間,本文BU65170采用與單片機(jī)相同的12M時(shí)鐘輸入。

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

當(dāng)有通訊事件到來時(shí),BU65170的 腳會(huì)產(chǎn)生一個(gè)中斷信號(hào)。將該信號(hào)送給單片機(jī)的外部中斷0,并設(shè)置相應(yīng)的軟件中斷優(yōu)先級(jí),這樣就能保證通訊事件能夠及時(shí)被單片機(jī)獲知并做相關(guān)處理。

由于單片機(jī)對(duì)BU65170片內(nèi)16位數(shù)據(jù)的高低字節(jié)采用分時(shí)讀寫的操作,故其高字節(jié)數(shù)據(jù)線D8-D15和低字節(jié)數(shù)據(jù)線D0-D7均直接連接到單片機(jī)的數(shù)據(jù)總線P0口上。為保證通訊時(shí)的電流輸出,在P0口與兩數(shù)據(jù)線間使用了總線驅(qū)動(dòng)芯片74LS244。

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

4BU65170與單片機(jī)接口軟件設(shè)計(jì)

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


圖3初始化子程序框圖 圖4中斷服務(wù)程序框圖

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

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

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

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

在調(diào)試過程中,筆者發(fā)現(xiàn),單片機(jī)對(duì)BU65170芯片內(nèi)寄存器和靜態(tài)數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)存取時(shí),對(duì)操作時(shí)序要求嚴(yán)格,具體遵循以下原則:

對(duì)芯片內(nèi)地址單元(雙字節(jié))進(jìn)行寫操作時(shí),兩次操作的間隔不應(yīng)少于2.5us。

對(duì)芯片內(nèi)地址單元進(jìn)行讀操作時(shí),首先應(yīng)對(duì)該地址進(jìn)行一次空讀。即第一次讀取的數(shù)據(jù)不能使用,應(yīng)對(duì)該地址重復(fù)讀取一遍,第二遍讀出的內(nèi)容才是實(shí)際該地址中的內(nèi)容。如果需要在連續(xù)的地址空間中讀取多個(gè)數(shù)據(jù),則兩次讀操作的時(shí)間間隔也不應(yīng)少于2.5us。

4 結(jié)束語

本文在介紹1553B總線協(xié)議芯片BU65170的基礎(chǔ)上,在以單片機(jī)為核心,以BU65170為通訊接口的有效載荷測(cè)控系統(tǒng)中,設(shè)計(jì)了軟硬件接口,將有效載荷作為一個(gè)RT與星上數(shù)據(jù)管理系統(tǒng)實(shí)現(xiàn)了通訊連接。在數(shù)次整星電聯(lián)試試驗(yàn)中,與數(shù)據(jù)管理系統(tǒng)的通訊及時(shí)準(zhǔn)確、穩(wěn)定可靠。接口電路簡(jiǎn)單,易于實(shí)現(xiàn),軟件設(shè)計(jì)模塊化、規(guī)范化,針對(duì)不同類型消息采用不同通訊模式的方法大大提高了系統(tǒng)通訊的可靠性和穩(wěn)定性。該接口方式對(duì)于嵌入式系統(tǒng)與1553B總線連接更具有廣泛的適用性。

參考文獻(xiàn):

1.馬捷中等 1553B總線控制器遠(yuǎn)程終端軟件設(shè)計(jì)[J] 測(cè)控技術(shù),2003

2.趙希權(quán)等 循環(huán)冗余校驗(yàn)在單片機(jī)無線通信中的應(yīng)用 微計(jì)算機(jī)信息 2005.7-2

3.飛機(jī)內(nèi)部時(shí)分制指令/響應(yīng)式多路傳輸數(shù)據(jù)總線 美國(guó)軍用標(biāo)準(zhǔn),1978

4.李華 MCS-51系列單片機(jī)實(shí)用接口技術(shù) 北京航空航天大學(xué)出版社1993.1



評(píng)論


技術(shù)專區(qū)

關(guān)閉