1 DEI1016的主要功能
DEI1016是DeviceEngineeringIncorporated生產(chǎn)的一種可支持ARINC429航空總線協(xié)議的串行接收" title="接收">接收、發(fā)送" title="發(fā)送">發(fā)送器件,。該器件的主要功能如下:
●串行數(shù)據(jù)字長(zhǎng)為32或25位;
●串行數(shù)據(jù)速率為100kbps或12.5kbps,;
●具有獨(dú)立的收,、發(fā)電路,;
●兩個(gè)獨(dú)立的接收器可直接與ARINC429總線接口;
●具有串/并接收數(shù)據(jù)轉(zhuǎn)換,,和并/串發(fā)送數(shù)據(jù)轉(zhuǎn)換功能,;
●對(duì)接收的數(shù)據(jù)可進(jìn)行奇偶狀態(tài)校驗(yàn);并可對(duì)發(fā)送數(shù)據(jù)奇偶狀態(tài)進(jìn)行設(shè)置,;
●可自動(dòng)產(chǎn)生字與字之間的間隔,;
●采用單一+5V供電。
2 DEI1016的工作原理
DEI1016的引腳功能及特點(diǎn)以前已有介紹,,現(xiàn)僅對(duì)該器件的工作原理作以描述,。
2.1 DEI1016的復(fù)位及初始化
電路上電后,首先在MR引腳施加200μs的低電平脈沖以使DEI1016復(fù)位,,然后把控制字寫(xiě)到16位數(shù)據(jù)總線上,,這樣,在LDCW引腳施加低電平便可把控制字寫(xiě)入到控制字寄存器,,爾后便可接收和發(fā)送數(shù)據(jù),。
2.2 DEI1016的數(shù)據(jù)發(fā)送過(guò)程
發(fā)送數(shù)據(jù)時(shí),首先應(yīng)查詢TXR引腳是否為高電平,,若是高電平,,表明發(fā)送存儲(chǔ)器已空;此時(shí)置ENTX引腳為低電平可停止發(fā)送數(shù)據(jù),,并把要發(fā)送的數(shù)據(jù)寫(xiě)到16位數(shù)據(jù)總線上,。之后,若要發(fā)送數(shù)據(jù)字1,,則置LD1為低,,LD2為高;若發(fā)送數(shù)據(jù)字2,,則置LD1為高,,LD2為低此時(shí)再查詢TXR引腳是否為低電平,若為低電平,,表明發(fā)送數(shù)據(jù)已裝載到存儲(chǔ)器中,,此時(shí)再置ENTX引腳為高電平即可發(fā)送數(shù)據(jù)。DEI1016的發(fā)送存儲(chǔ)器最多可裝載8?jìng)€(gè)32位字長(zhǎng)的數(shù)據(jù),,DEI1016采用的是先進(jìn)先出的發(fā)送順序,。
2.3 DEI1016的數(shù)據(jù)接收過(guò)程
當(dāng)接收器1接收到數(shù)據(jù)后,系統(tǒng)會(huì)置DR1為低電平,;而當(dāng)接收器2接收到數(shù)據(jù)后,,系統(tǒng)將置DR2為低電平。欲使接收器1將接收數(shù)據(jù)的字1送至16位數(shù)據(jù)總線上,,應(yīng)先置SEL為低電平,,再置OE1為低電平且置OE2為高,。而后再置SEL為高電平,便可將字2送至16位數(shù)據(jù)總線,。要使接收器2的數(shù)據(jù)送至16位數(shù)據(jù)總線上,,則置OE2為低電平,OE1為高電平即可,。
表1 74LS373功能表
使能G | 輸入D | 輸出Q |
H | H | H |
H | L | L |
L | X | Qo |
X | X | Z |
3 AT89C52與DEI1016的接口設(shè)計(jì)
AT89C52(U1)8位微控器與DEI1016的16位數(shù)據(jù)總線進(jìn)行數(shù)據(jù)交換時(shí),,必須先利用鎖存器來(lái)鎖存數(shù)據(jù)。其接口電路框圖見(jiàn)圖3,。發(fā)送數(shù)據(jù)時(shí),,U1先把要發(fā)送的數(shù)據(jù)分成低8位和高8位送出,并進(jìn)入U3,、U4鎖存,,爾后再把16位數(shù)據(jù)一同送至DEI1016U2的數(shù)據(jù)總線上。U3,、U4,、U5、U6均選用74LS373芯片,,它們的內(nèi)部均由D鎖存器和三態(tài)輸出門(mén)組成,,其功能表如表1所列。當(dāng)OE為低電平,,且G為高電平時(shí),,輸出Q與輸入D之間為直通方式。而當(dāng)OE為高電平,,且G由高電平跳變?yōu)榈碗娖胶?,D端輸入?shù)據(jù)被D鎖存器鎖存,之后即使D端(P0口)輸入數(shù)據(jù)再發(fā)生變化,,也不會(huì)影響已鎖存的數(shù)據(jù),。如果OE為低電平,,系統(tǒng)將輸出原先鎖存的數(shù)據(jù),。為了鎖存低8位數(shù)據(jù),需要由U1的WR和地址選通信號(hào)Y7(由譯碼器U7譯出)經(jīng)或非門(mén)U8去控制U3的G端,。實(shí)際上,,只有U1在執(zhí)行寫(xiě)操作時(shí),WR和Y7才同時(shí)為低電平,,而此時(shí)低8位數(shù)據(jù)才能被U3暫時(shí)鎖存,。高8位數(shù)據(jù)的鎖存與此類似M,U1的P3.4由高變低可打開(kāi)U3,、U4的輸出門(mén),,從而使U3,、U4把數(shù)據(jù)送至U2的數(shù)據(jù)總線,當(dāng)U1的P1.3或P1.4由高變低以把16位數(shù)據(jù)裝入發(fā)送存儲(chǔ)器后,,P3.4會(huì)由低變高,,此時(shí)U3、U4輸出為高阻抗?fàn)顟B(tài),,但不會(huì)影響U2的數(shù)據(jù)輸出狀態(tài),。其發(fā)送程序如下:
mov dptr,#e000h
mov a,,#d1l,;取字1的低8位
movx @dptr,a,;把字1的低8位鎖入U3
mov dptr,,#c000h
mov a,#d1h,;取字1的高8位
movx @dptr,,a;把字1的高8位鎖入U4
clr p3.4,;打開(kāi)U3,、U4的輸出
nop
clr p1.3;字1數(shù)據(jù)裝入DEI1016
nop
setb p3.4,;關(guān)閉U3,、U4的輸出
setb p1.3
mov dptr,#e000h
mov a,,#d2l,;取字2的低8位
mov dptr,,#c000h
mova,#d2h,;取字2的高8位
movx@dptr,,a;把字2的高8位鎖入U3
clrp3.4,;打開(kāi)U3,、U4的輸出
nop
clrp1.4;字2數(shù)據(jù)裝入DEI1016
nop
setbp3.4
setbp1.4
用U1接收數(shù)據(jù),,應(yīng)將DR1,、DR2及TXR經(jīng)與門(mén)U13接至U1的INT0,在INT0口產(chǎn)生中斷后,,U1便執(zhí)行讀操作,,并通過(guò)RD和Y5控制U14,、U15以讀入DR1、DR2及TXR的狀態(tài),。U2接收到數(shù)據(jù)或發(fā)送數(shù)據(jù)完畢后,,即向U1的INT0口申請(qǐng)中斷,并在中斷程序中判斷DR1,、DR2及TXR的狀態(tài),。TXR為低表明發(fā)送完畢,而DR1或DR2為低則表明已收到數(shù)據(jù),。此時(shí)可置P1.2(SEL)為低電平,,同時(shí)也置P1.0(接DEI1016的OE1)或P1.1接DEI1016的OE2為低電平,以使字1的數(shù)據(jù)出現(xiàn)在數(shù)據(jù)總線上,,而使P1.0,、P1.1經(jīng)U11異或后輸出以使U5、U6的G端為高電平,,從而把數(shù)據(jù)鎖入U5,、U6。由于RD分別與Y7,、Y6相或后的輸出是與U5,、U6的OE門(mén)相連接的,因此,,U1執(zhí)行讀操作時(shí),,應(yīng)先后打開(kāi)U5、U6的OE門(mén)來(lái)把數(shù)據(jù)讀入,。其接收程序如下:(以接收器1為例),。
clrp1.2;置DEI1016的SEL=0,,讀字1
clrp1.0,;置DEI1016的/OE1=0
setbp1.1;置DEI1016的/OE2=1
nop
movdptr,,#e000h
movxa,,@dptr;把字1的低8位讀入
mov10h,,a
movdptr,,#c000h
movxa,@dptr,;把字1的高8位讀入
mov11h,a
setbp1.2,;置DEI1016的SEL=1,,讀字2
nop
movdptr,,#e000h
movxa,@dptr,;把字2的低8位讀入
mov12h,,a
movdptr,#c000h
movxa,,@dptr,;把字2的高8位讀入
mov13h,a
setbp1.0,;置DEI1016的/OE1=1
setbp1.1,;置DEI1016的/OE2=1
setbp1.2;置DEI1016的SEL=1
DEI1016的兩路接收可能產(chǎn)生同時(shí)接收的現(xiàn)象,。即在上述兩路共用一個(gè)中斷源時(shí),,如果某一路申請(qǐng)中斷已進(jìn)入接收程序,那么另一路同時(shí)接收的數(shù)據(jù)就可能被屏蔽,。解決方法是:進(jìn)入中斷程序后,,在接收數(shù)據(jù)過(guò)程中再查詢另一路DR的狀態(tài)。當(dāng)然,,如果每路單獨(dú)使用一個(gè)中斷源,,效果將會(huì)更好。
4 結(jié)束語(yǔ)
實(shí)際上,,上述AT89C52與DEI1016的接口電路經(jīng)改進(jìn)也可以應(yīng)用到其它16位數(shù)據(jù)總線接口的電路中,,而如果用ISP器件替代鎖存器及其門(mén)電路,還可大大減小電路板的面積,。