《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > ARINC429航空總線與AT89C52單片機接口設計
ARINC429航空總線與AT89C52單片機接口設計
互聯網
摘要: DEI1016是一種可支持ARINC429航空總線協議的串行接收、發送器件。文中介紹了DEI1016的主要功能和工作原...
Abstract:
Key words :

1 DEI1016的主要功能

DEI1016是DeviceEngineeringIncorporated生產的一種可支持ARINC429航空總線協議的串行接收" title="接收">接收、發送" title="發送">發送器件。該器件的主要功能如下:

●串行數據字長為32或25位;

●串行數據速率為100kbps或12.5kbps;

●具有獨立的收、發電路;

●兩個獨立的接收器可直接與ARINC429總線接口;

●具有串/并接收數據轉換,和并/串發送數據轉換功能;

●對接收的數據可進行奇偶狀態校驗;并可對發送數據奇偶狀態進行設置;

●可自動產生字與字之間的間隔;

●采用單一+5V供電。

2 DEI1016的工作原理

DEI1016的引腳功能及特點以前已有介紹,現僅對該器件的工作原理作以描述。

2.1 DEI1016的復位及初始化

電路上電后,首先在MR引腳施加200μs的低電平脈沖以使DEI1016復位,然后把控制字寫到16位數據總線上,這樣,在LDCW引腳施加低電平便可把控制字寫入到控制字寄存器,爾后便可接收和發送數據。

2.2 DEI1016的數據發送過程

發送數據時,首先應查詢TXR引腳是否為高電平,若是高電平,表明發送存儲器已空;此時置ENTX引腳為低電平可停止發送數據,并把要發送的數據寫到16位數據總線上。之后,若要發送數據字1,則置LD1為低,LD2為高;若發送數據字2,則置LD1為高,LD2為低此時再查詢TXR引腳是否為低電平,若為低電平,表明發送數據已裝載到存儲器中,此時再置ENTX引腳為高電平即可發送數據。DEI1016的發送存儲器最多可裝載8個32位字長的數據,DEI1016采用的是先進先出的發送順序。

2.3 DEI1016的數據接收過程

當接收器1接收到數據后,系統會置DR1為低電平;而當接收器2接收到數據后,系統將置DR2為低電平。欲使接收器1將接收數據的字1送至16位數據總線上,應先置SEL為低電平,再置OE1為低電平且置OE2為高。而后再置SEL為高電平,便可將字2送至16位數據總線。要使接收器2的數據送至16位數據總線上,則置OE2為低電平,OE1為高電平即可。

表1 74LS373功能表

輸出控制OE
L
使能G 輸入D 輸出Q
L
H H H
L
H L L
H
L X Qo
X X Z

3 AT89C52與DEI1016的接口設計

AT89C52(U1)8位微控器與DEI1016的16位數據總線進行數據交換時,必須先利用鎖存器來鎖存數據。其接口電路框圖見圖3。發送數據時,U1先把要發送的數據分成低8位和高8位送出,并進入U3、U4鎖存,爾后再把16位數據一同送至DEI1016U2的數據總線上。U3、U4、U5、U6均選用74LS373芯片,它們的內部均由D鎖存器和三態輸出門組成,其功能表如表1所列。當OE為低電平,且G為高電平時,輸出Q與輸入D之間為直通方式。而當OE為高電平,且G由高電平跳變為低電平后,D端輸入數據被D鎖存器鎖存,之后即使D端(P0口)輸入數據再發生變化,也不會影響已鎖存的數據。如果OE為低電平,系統將輸出原先鎖存的數據。為了鎖存低8位數據,需要由U1的WR和地址選通信號Y7(由譯碼器U7譯出)經或非門U8去控制U3的G端。實際上,只有U1在執行寫操作時,WR和Y7才同時為低電平,而此時低8位數據才能被U3暫時鎖存。高8位數據的鎖存與此類似M,U1的P3.4由高變低可打開U3、U4的輸出門,從而使U3、U4把數據送至U2的數據總線,當U1的P1.3或P1.4由高變低以把16位數據裝入發送存儲器后,P3.4會由低變高,此時U3、U4輸出為高阻抗狀態,但不會影響U2的數據輸出狀態。其發送程序如下:

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;打開U3、U4的輸出

nop

clr p1.3;字1數據裝入DEI1016

nop

setb p3.4;關閉U3、U4的輸出

setb p1.3

mov dptr,#e000h

mov a,#d2l;取字2的低8位

movx@dptr,a;把字2的低8位鎖入U3

mov dptr,#c000h

mova,#d2h;取字2的高8位

movx@dptr,a;把字2的高8位鎖入U3

clrp3.4;打開U3、U4的輸出

nop

clrp1.4;字2數據裝入DEI1016

nop

setbp3.4

setbp1.4

用U1接收數據,應將DR1、DR2及TXR經與門U13接至U1的INT0,在INT0口產生中斷后,U1便執行讀操作,并通過RD和Y5控制U14、U15以讀入DR1、DR2及TXR的狀態。U2接收到數據或發送數據完畢后,即向U1的INT0口申請中斷,并在中斷程序中判斷DR1、DR2及TXR的狀態。TXR為低表明發送完畢,而DR1或DR2為低則表明已收到數據。此時可置P1.2(SEL)為低電平,同時也置P1.0(接DEI1016的OE1)或P1.1接DEI1016的OE2為低電平,以使字1的數據出現在數據總線上,而使P1.0、P1.1經U11異或后輸出以使U5、U6的G端為高電平,從而把數據鎖入U5、U6。由于RD分別與Y7、Y6相或后的輸出是與U5、U6的OE門相連接的,因此,U1執行讀操作時,應先后打開U5、U6的OE門來把數據讀入。其接收程序如下:(以接收器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的兩路接收可能產生同時接收的現象。即在上述兩路共用一個中斷源時,如果某一路申請中斷已進入接收程序,那么另一路同時接收的數據就可能被屏蔽。解決方法是:進入中斷程序后,在接收數據過程中再查詢另一路DR的狀態。當然,如果每路單獨使用一個中斷源,效果將會更好。

4 結束語

實際上,上述AT89C52與DEI1016的接口電路經改進也可以應用到其它16位數據總線接口的電路中,而如果用ISP器件替代鎖存器及其門電路,還可大大減小電路板的面積。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 亚洲午夜精品国产电影在线观看| 男女裸体影院高潮| 美女把尿口扒开让男人桶| 精品999久久久久久中文字幕| 永久免费av无码网站大全| 欧美―第一页―浮力影院| 无翼少无翼恶女漫画全彩app| 宅男影院在线观看| 国产精品福利自产拍在线观看 | 日本理论片午午伦夜理片2021| 无码中文字幕色专区| 天堂√在线中文官网在线| 国产精品va在线观看无码| 国产一区中文字幕| 亚洲欧洲另类春色校园网站| 亚洲日本视频在线观看| 中文字幕无码人妻aaa片| Channel| 91九色视频在线观看| 精品69久久久久久99| 最近在线2018视频免费观看| 成人午夜免费福利视频| 国产精品无码专区在线播放| 国产一区二区三区在线观看影院| 亚洲男人的天堂网站| 久久午夜无码鲁丝片直播午夜精品| runaway韩国动漫全集在线| 国产挤奶水主播在线播放| 精品一区精品二区制服 | 男人的天堂色偷偷之色偷偷| 日韩免费高清专区| 国外性xxxnxxxf视频| 四虎网站1515hh四虎| 亚洲人成影院在线无码按摩店| 一级黄色在线视频| 久久国产真实乱对白| 99re这里只有热视频| 超碰aⅴ人人做人人爽欧美| 秋霞日韩一区二区三区在线观看| 欧美三级中文字幕在线观看| 婷婷五月综合色中文字幕|