利用Intel8274多協(xié)議串行控制器實現(xiàn)基于SDLC協(xié)議的串行通訊_第1頁
利用Intel8274多協(xié)議串行控制器實現(xiàn)基于SDLC協(xié)議的串行通訊_第2頁
利用Intel8274多協(xié)議串行控制器實現(xiàn)基于SDLC協(xié)議的串行通訊_第3頁
利用Intel8274多協(xié)議串行控制器實現(xiàn)基于SDLC協(xié)議的串行通訊_第4頁
利用Intel8274多協(xié)議串行控制器實現(xiàn)基于SDLC協(xié)議的串行通訊_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、利用Intel8274多協(xié)議串行控制器實現(xiàn)基于SDLC協(xié)議的串行通訊利用Intel8274多協(xié)議串行控制器實現(xiàn)基于SDLC協(xié)議的串行通訊類別:通信網(wǎng)絡作者:北京理工大學 周 閏高梅國 來源:國外電子元器件 利用Intel8274多協(xié)議串行控制器實現(xiàn)基于 SDLC協(xié)議的串行通訊摘要:文章從軟、硬件設計的角度分別討論了利用Intel8274多協(xié)議串行控制器來實現(xiàn)基于同數(shù)據(jù)鏈路控制(SDLC)協(xié)議的串行通訊,介紹了多協(xié)議串行控制Intel8274的主要特點,給出了Intel 8274和TMS320F206在某雷達項目中實現(xiàn)了串行通訊的硬件電路設計和軟件程序。同時指出了使用Intel8274應注意的問

2、題。 關鍵詞:SDLCIntel 8274 串行通訊 TMS320F206 最早由IBM公司制定的面向比特型的數(shù)據(jù)鏈路控制規(guī)程同步數(shù)據(jù)鏈路控制(SDLC)協(xié)議由于個有透明傳輸、可靠性高、傳輸效率高以及具有很大的靈活性等優(yōu)點,已被越來越廣泛地采用。但由于這種鏈路協(xié)儀功能比較完善,因此實現(xiàn)起來也相對要復雜一些。隨著近年來大規(guī)模集成電路與微處理機、DSP技術的迅速發(fā)展,市場上已經(jīng)出現(xiàn)了多種實現(xiàn)這一規(guī)程的專用芯片,從而使得這種協(xié)議的實現(xiàn)發(fā)越來越簡單,其應用越來越普遍。Intel8274芯片就是其中比較典型的一種。它是由Intel公司生產(chǎn)的專門為異步、IBM雙同步和SDLC/HDLC協(xié)議的高速通訊線路與

3、Intel公司的微機機系統(tǒng)的連接而設計的多協(xié)議串行控制器(MPSC)。1 同步數(shù)據(jù)鏈路控制(SDLC)協(xié)議同步數(shù)據(jù)鏈路控制(SDLC:SynchronousData Link Control)是由IBM公司制定的一種鏈路通訊協(xié)議,現(xiàn)已成為系統(tǒng)網(wǎng)絡結構(SNA)的數(shù)據(jù)鏈路控制協(xié)議,是目前可靠性和傳輸較高的最先進的傳輸控制協(xié)議之一。另一種相類似的通訊協(xié)議是高級數(shù)據(jù)鏈路控制(HDLC)協(xié)議。由于SDLC的制定要早于HDLC,同時因為IBM公司也共同參與了HDLC的制定,所以HDLC實際上包含了SDLC,從而使SDLC協(xié)議成為HDLC協(xié)議的一個子集。在SDLC協(xié)議中,被傳輸?shù)囊唤M信息數(shù)據(jù)被稱為“幀”。

4、完整的一個幀包含標志字序列字段、數(shù)據(jù)站地址字段、數(shù)據(jù)站地址字段、控制字段、信息字段和幀校驗序列字段等。標志字序列利用特定的數(shù)據(jù)組合01111110表示,所有的幀必須以01111110開始,并且以01111110結束。在傳輸?shù)钠渌侄沃校瑸榱朔乐钩霈F(xiàn)01111110而使接收方錯誤的認為是幀結束,SDLC協(xié)議采用0插入方法,即當傳輸?shù)男畔?shù)據(jù)中出現(xiàn)連續(xù)的5個1,就由發(fā)送方在這5個1之后插入一個0.接收方在接收數(shù)據(jù)的時候,如果發(fā)現(xiàn)有5個連續(xù)的1,就將其后的一個0刪去。另外SDLC協(xié)議還規(guī)定了幀的各個字段必須是以8比特為傳輸?shù)淖钚?。SDLC能夠被廣泛應用的另一個原因在于它可以進行嚴格的差錯控制,因為S

5、DLC采用了最為有效的循環(huán)冗余校驗碼(CRC16來)來進行差錯控制。2 Intel 8274多協(xié)議串行控制器1Intel 8274具有靈活的體系結構,其主要特點在于只使用很少的軟、硬件即可方便地實現(xiàn)多種不同的通訊協(xié)議,如異步、字節(jié)同步和位同步(HDLC/SLC)等等。Intel 8274的主要性能指標有:可進行異步和同步操作;具有兩個獨立的全雙工發(fā)送器和接收器;與8048/51/85/85/88CPU,8237/57 DMA控制器以及8089I/O處理機完成兼容;有4個獨立的DMA通道;波特率達0880k波特;異步操作:58位字符,奇、偶校驗或無校驗,1、1.5或2個停止位;可進行幀格式、越界

6、和奇偶性錯誤碼檢測;在字節(jié)同步時可使內(nèi)部或外部的字節(jié)同步,具有一或兩具同步字符,能自動產(chǎn)生和校驗循環(huán)冗余檢碼(CRC-16),并可與IBM公司的雙同步協(xié)議兼容;位同步時能產(chǎn)生和識別SDLC/HDLC標志,識別8位地址,自動插入和刪除零位,自動產(chǎn)生和校驗循環(huán)冗余校驗碼(CCITT)X.25標準兼容。當Intel 8274用于SDLC工作方式時,在初始化結束后,如果微處理機寫放發(fā)送啟動,則Intel8274處于發(fā)送狀態(tài)。此時Intel8274將自動發(fā)送SDLC同步標志01111110,直至微處理機給出發(fā)送信息字段。在發(fā)送過程中,Intel8274能夠自動檢測信息字段中是否含有連續(xù)的5個1,如果有,

7、則在每5個連續(xù)1的組成的序列之后自動插入一個0。當發(fā)送數(shù)據(jù)緩沖器和輸出移位寄存器均沒有可發(fā)送的數(shù)據(jù)位時,Intel8274就會自動發(fā)送兩個字節(jié)的CRC(循環(huán)冗余校驗碼),以終止該幀。當微處理機寫入接收啟動命令字后,Intel8274即處于接收狀態(tài),此時,它可自動搜索SDLC標志字,以判斷幀的開始。Intel 8274與微處理機的系統(tǒng)接口的由8個緩沖器組成,表1是其讀寫操作方式。其中數(shù)據(jù)緩沖器由A1=0尋址,命令端口由A1=1尋址。命令、參數(shù)和狀態(tài)信息保存在Intel8274的22個寄存器中。每個通道有8個寫寄存器和3個讀寄存器。這些信息均可以通過命令端口進行讀寫。 表1 讀寫操作方式CSA1A

8、0讀操作寫操作000讀通道A數(shù)據(jù)寫通道A數(shù)據(jù)010讀通道A狀態(tài)寫通道A命令/參數(shù)001讀通道B數(shù)據(jù)寫通道B數(shù)據(jù)011讀通道B狀態(tài)寫通道B命令/參數(shù)1XX高阻抗高阻抗 Intel 8274在使用方式上同樣可以有多種靈活的配置方式,如查詢、等待、中斷和DMA等。3 串行通訊的硬件實現(xiàn)由于Intel 8274是專門為了與Intel公司的微型機系統(tǒng)相匹配而設計的,因此該芯片與一些Intel公司的CPU、DMA控制器等可以做到無縫連續(xù)。這里介紹的是通過TI公司的DSP芯片TMS320F206來對Intel8274進行控制所組成通訊系統(tǒng)。TMS320F206是TI公司新近推出的TMS320C2XX系列DS

9、P,該系列DSP具有非常高的性價比,相對TMS320C2X系列來說,它的指令集可兼容,而速度提高了24倍,且價格降低了一半,因而在簡單的控制和通訊領域有著非常廣泛的應用。圖1是一個由TMS320F206、Intel 8274組成的基于RS-485標準和SDLC協(xié)議的串行通訊接口系統(tǒng)的具體結構圖。該電路非常簡單。圖中由TMS320F206充當微處理機來對Intel8274進行控制,而Intel 8274只使用了其中的一個接收/發(fā)送通道,并且由于采用了中斷方式,因此,它們之間只有14根連接線(其中控制線4根,數(shù)據(jù)總線8根,地線總線2根)。4 串行通訊的軟件設計在以往的Intel 8274的應用中,

10、大部分都是工作在查詢模式。雖然查詢方式的程序設計簡單,但由于必須使用控制芯片(微處理器、DSP)來不斷地查詢寄存器中的狀態(tài)標志位,因而不能進行其它工作,這使得整個程序的效率很低。尤其是在實時性要求較強的場合下不太適用。因此,設計時需將Intel8274工作在中斷模式。在筆者的應用中,該串行通訊的流程首先是TMS320F206需要從另一個同步串行口接收數(shù)據(jù),然后,相關部分對該數(shù)據(jù)進行處理程序通過Intel8274發(fā)送出去。因此Intel 8274只有在同步串行口接收到數(shù)據(jù)后才處于發(fā)送狀態(tài),其它時候則處于接收狀態(tài)。TMS320F206串行通訊的相關軟件如下(未注明寄存器均指B通道寄存器):Inte

11、l 8274初始化程序:splk #0004h,60h ;wr0:復位out 60h,0003hsplk #0020h,60h ;wr4:SDLC方式out 60h,0003hsplk #0046h,60h ;wr0:指示寄存器指向wr6out 60h,0003hsplk #0054h,60h ;wr6:接收匹配地址54hout 60h,0003hsplk #0097h,60h ;wr0:指示寄存器指向wr7out 60h,0003hsplk #007eh,60h ;wr7:同步標志7ehout 60h,0003hsplk #0002h,60h ;A通道wr0out 60h,0002hsplk

12、 #0020h,60h ;A通道wr2:中斷方式out 60h,0002hsplk #0031h,60h ;wr0:指示寄存器指向wr1out 60h,003hsplk #001ch,60h ;wr1:全部接收中斷方式,不啟動發(fā)送器out 60h,0003hsplk #0023h,60h ;wr0:指示寄存器指向wr3out 60h,0003hsplk #00cdh,60h ;wr3:8位接收,接收CRC、接收器啟動out 60h,003h ;地址匹配接收模式下面是切換Intel 8274至發(fā)送狀態(tài)的同步接收中斷服務程序中:rco485s:splk #000bh,60h ;485總線轉(zhuǎn)入發(fā)送狀

13、態(tài)out 60h,iosrsplk #0085h,60h ;wr0:指示寄存器指向wr5out 60h,0003hsplk #0069h,60h ;wr5:發(fā)送CRC、發(fā)送器啟動out 60h,0003hsplk #0001h,60h ;wr0:指示寄存器指向wr1out 60h,0003hsplk #001eh,60h ;wr1:發(fā)送中斷啟動out 60h,0003hlacl #0ah ;等待0ah周期循環(huán),loop: sub #1h ;使發(fā)送足夠同步標志nopbcnd loop,GTlar ar3,6fhmar *,ar3 ;置ar3為當前輔助寄存器out *+,0001h ;發(fā)送第一個數(shù)

14、據(jù)到Intel8274Intel 8274發(fā)送/接收中斷服務程序:;Intel 8274接收r485: lar ar1,70hmar *,ar1 ;置ar1為當前輔助寄存器in *+,0001h ;從Intel 8274接收一個數(shù)據(jù);Intel 8274發(fā)送s485:mar *,ar3 ;置ar3為當前輔助寄存器out *+,0001h ;發(fā)送一個數(shù)據(jù)到Intel 8274lacl #60h ;等待60h周期循環(huán),loop1: sub #1h ;使能發(fā)送兩個字節(jié)CRCnop ;和至少一個同步標志5 應用Intel 8274的注意事項在圖1的硬件設計中,必須注意是Intel8274的TXCB管腳

15、(或TXCA管腳)。由于TXCB管腳在作為Intel8274的發(fā)磅器時鐘的同時又是一個輸入管腳,而作為485串行通訊數(shù)據(jù)總線上的發(fā)送器時鐘要求對于源端是輸出管腳,這樣,就必須從外部引入一個發(fā)送同步時鐘CLKT。這是使用Intel8274時在硬件上應注意的問題。在軟件設計中,第一個要注意的問題是Intel8274的16個寫寄存器的使用問題。在Intel 8274中,每個通道有8個寫寄存器和3個讀寄存器,但卻只有2根地址線。因此該芯片專門設計了一個內(nèi)部指示寄存器,以專門用于在存取8274命令/狀態(tài)時選擇讀/寫哪個命令或狀態(tài)寄存器。該指示寄存器位于WR0寄存器的D2D0位。上電復位后,指示寄存器的內(nèi)

16、容為0。因此第一次寫入命令寄存器的命令將寫入WR0,同時這個命令的低三位寫入指示寄存器,并標志著下次將讀/取的寄存器號。而指示寄存器的內(nèi)容在完成讀或?qū)懖僮髦缶捅粡臀?,因些在讀或?qū)懸粋€寄存器之前,都必須先向WR0(指示寄存器)寫入一條指令。在上面的程序中,尤其是初始化段,可以明顯地看到這一過程。第二個需要注意的問題是SDLC的同步標志字。SDLC協(xié)議規(guī)定,在幀起始和結束的時候,必須發(fā)送至少1個同步標志01111110。在一般的實際應用中,TMS320F206的時候會遠遠高于Intel8274的時候,因此,從同步串行口接收完數(shù)據(jù),并將Intel8274切換至發(fā)送狀態(tài)起,到向Intel 8274發(fā)

17、送第一個數(shù)據(jù)之前,根本來不及讓Intel8274自動發(fā)送至少一個SDLC協(xié)議的步標志字。為解決這一問題,在實際編程過程中,設計得可有意在它們之間加入一個10個周期左右的循環(huán)(虛框內(nèi)的程序)。同樣,從Intel8174發(fā)送完一幀數(shù)據(jù)之后到切換Intel 8274至接收狀態(tài)之間,設計也可有意加入一個循環(huán)(虛框內(nèi)的程序)。在這個循環(huán)中,Intel8274首先會自動插入兩個字節(jié)的CRC循環(huán)冗余校驗碼,然后才暗SDLC的同步標志字,因此這個循環(huán)的周期數(shù)要大于第一個循環(huán)的周期數(shù)。這兩個循環(huán)周期的具體參數(shù)與TM320F206和Intel8274所使用的時鐘有關,因此需要設計者在實際系統(tǒng)調(diào)試中加以確定。6 Intel 8274串行通訊系統(tǒng)的應用在筆者研制的某雷達項目中,要求其中一條通訊線路的信息交

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論