總線與系統(tǒng)通訊講義_第1頁
總線與系統(tǒng)通訊講義_第2頁
總線與系統(tǒng)通訊講義_第3頁
總線與系統(tǒng)通訊講義_第4頁
總線與系統(tǒng)通訊講義_第5頁
已閱讀5頁,還剩81頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、總線與系統(tǒng)通訊講義總線與系統(tǒng)通訊講義 v第一節(jié)第一節(jié) 總論總論v第二節(jié)第二節(jié) 串行異步通信總線串行異步通信總線v第三節(jié)第三節(jié) 通用串行總線通用串行總線usbv第四節(jié)第四節(jié) ethernetv第五節(jié)第五節(jié) iic總線總線v第六節(jié)第六節(jié) spi總線總線v第七節(jié)第七節(jié) isa總線總線v第八節(jié)第八節(jié) pci總線總線 southeast university2004.07總線與系統(tǒng)通訊講義總線與系統(tǒng)通訊講義 第一節(jié)第一節(jié) 總論總論v定義:總線是連接系統(tǒng)有關(guān)部件的一組信號(hào)線,是定義:總線是連接系統(tǒng)有關(guān)部件的一組信號(hào)線,是系統(tǒng)中用來傳送信息代碼的公共通路。系統(tǒng)中用來傳送信息代碼的公共通路。v片總線片總線(c

2、hip bus,c-bus):又稱元件級(jí)總線,:又稱元件級(jí)總線,把部件內(nèi)各種不同器件連接在一起的信號(hào)線。把部件內(nèi)各種不同器件連接在一起的信號(hào)線。iic,spi。v內(nèi)部總線內(nèi)部總線(internal bus,i-bus):即系統(tǒng)總線,:即系統(tǒng)總線,用于微機(jī)各部件之間的信息傳輸。用于微機(jī)各部件之間的信息傳輸。isa,pci。v外部總線外部總線(external bus,e-bus):又稱通信總線,:又稱通信總線,用于設(shè)備之間或微機(jī)與設(shè)備之間的通信。如用于設(shè)備之間或微機(jī)與設(shè)備之間的通信。如usb,232,485,ethernet。 southeast university2004.07總線與系統(tǒng)通訊

3、講義總線與系統(tǒng)通訊講義 第二節(jié)第二節(jié) 串行異步通信總線串行異步通信總線v2.1 uart與與rs-232c,rs-485 southeast university2004.07 uart(universal asynchronous receive/transmitter)通用異步收通用異步收發(fā)器發(fā)器。在異步串行通信總線中,。在異步串行通信總線中,rs-232c和和rs485是比較廣泛的兩種總線標(biāo)準(zhǔn)。是比較廣泛的兩種總線標(biāo)準(zhǔn)。這兩種標(biāo)準(zhǔn)只是在電平標(biāo)準(zhǔn)上作了一定的約定。這兩種標(biāo)準(zhǔn)只是在電平標(biāo)準(zhǔn)上作了一定的約定。v2.2 串行異步通信的數(shù)據(jù)格式串行異步通信的數(shù)據(jù)格式110000 1 0 1110

4、0 0起始位數(shù)據(jù)位0低高校驗(yàn)位空閑位停止位完整一幀 southeast university2004.07 rs-232標(biāo)準(zhǔn)是美國eia(電子工業(yè)聯(lián)合會(huì))與bell等公司一起開發(fā)的,1969年公布的通信協(xié)議,適合的數(shù)傳率:020kbps。1.電氣特性 rs-232對(duì)電氣特性,邏輯電平和各種信號(hào)線的功能都作了規(guī)定。 邏輯“1”=-3v-15v “0”=+3v+15v 與ttl邏輯電平不一樣,可用ttl/eia電平轉(zhuǎn)換器進(jìn)行,如mc1488,mc1489。v2.3 eia-rs-232cv2.3.1 rs-232c簡介簡介 southeast university2004.07 采用eia電平比t

5、tl電平具有更強(qiáng)的抗干擾性能。 另外,max232省電可連接二對(duì)收/發(fā)線,只用單電源。2.機(jī)械特性1)連接器(connector) 常用二種:db-25型 25腳。只用9個(gè)信號(hào)(2個(gè)數(shù)據(jù)線,6個(gè)控制線,1個(gè)地址)如圖:1234db-25型連接器5678911132522201814發(fā)送電流(-)發(fā)送電流(+)dcdgnddsrctsrtsrxdtxd(-)接收電流(+)接收電流 southeast university2004.07123456789dsrrtsctsridcdrxdtxddtrgnddb-9型連接器 db-9型 9針,9針全用,如右圖。3.協(xié)議要求 rs-232c僅僅在信號(hào)傳

6、輸中電平的要求等物理方面作出了規(guī)定,它構(gòu)成協(xié)議的一個(gè)部分。而數(shù)據(jù)傳輸?shù)淖止?jié)內(nèi)容所代表的含義也是協(xié)議的重要部分。2.3.2 接口芯片及典型電路接口芯片及典型電路 接口芯片有:接口芯片有:ttlrs-232c:mc1488,75188;rs-232cttl:mc1489,75189;ttlrs-232c:max232,icl232等等。等等。 southeast university2004.07 southeast university2004.07mc1488mc1489rs-232ttleia電平+15v+15vttl+15v 利用ttlrs-232c接口芯片mc1488和rs-232ctt

7、l接口芯片mc1489實(shí)現(xiàn)ttl與rs-232c相互轉(zhuǎn)換的一種電路如下: southeast university2004.072.4.1 電氣特性電氣特性 總線只有信號(hào)線a和b,當(dāng)電平a-b200mv時(shí),線路上表示傳輸信號(hào)“1”;當(dāng)b-a200mv時(shí),線路上表示傳輸“0”。仍然遵循串行異步通信數(shù)據(jù)的傳輸格式,這樣信號(hào)就可以以差分方式得到長距離擴(kuò)展。而且總線數(shù)目少,連接靈活方便。 2.4 rs-485簡介簡介 rs-232c標(biāo)準(zhǔn)總線系統(tǒng)只能一對(duì)多通信,而rs-485標(biāo)準(zhǔn)則可以多機(jī)通信。沒有硬件上的主從約束,任何時(shí)刻所有掛在rs-485總線上的uart終端都在監(jiān)聽總線上的數(shù)據(jù)。一旦與自身要求符合

8、,立即開始通信。否則丟棄所收到的數(shù)據(jù)。 2.4.2 接口芯片及典型電路接口芯片及典型電路 max481、max483、max485、max487等是rs485總線的一些接口芯片,差別體現(xiàn)在半/全雙工工作方式、數(shù)據(jù)傳輸速率、轉(zhuǎn)換率限制、功耗關(guān)機(jī)、靜態(tài)電流大小和總線上允許的收發(fā)器數(shù)目等。 southeast university2004.07 southeast university2004.072.4.3 多機(jī)通訊與硬件連接多機(jī)通訊與硬件連接 多機(jī)通訊系統(tǒng)可以設(shè)計(jì)成全雙工通訊和半雙工通訊。半雙工通訊一般采用多機(jī)通訊系統(tǒng)可以設(shè)計(jì)成全雙工通訊和半雙工通訊。半雙工通訊一般采用主機(jī)查詢方式,分機(jī)只有在主

9、機(jī)允許下才能驅(qū)動(dòng)總線,使用完總線之后立即釋放主機(jī)查詢方式,分機(jī)只有在主機(jī)允許下才能驅(qū)動(dòng)總線,使用完總線之后立即釋放總線。在全雙工通訊時(shí),也是通常采用由主機(jī)查詢的工作方式,需要與主機(jī)通訊總線。在全雙工通訊時(shí),也是通常采用由主機(jī)查詢的工作方式,需要與主機(jī)通訊的分機(jī)占有總線。但要注意不要使多個(gè)分機(jī)同時(shí)長時(shí)間驅(qū)動(dòng)主機(jī)接受總線。的分機(jī)占有總線。但要注意不要使多個(gè)分機(jī)同時(shí)長時(shí)間驅(qū)動(dòng)主機(jī)接受總線。 southeast university2004.072.5 設(shè)計(jì)指南設(shè)計(jì)指南2.5.1 mcu軟件設(shè)計(jì)軟件設(shè)計(jì) 對(duì)于一個(gè)基于對(duì)于一個(gè)基于uart的通訊控制系統(tǒng),下位機(jī)的編程主要是對(duì)的通訊控制系統(tǒng),下位機(jī)的編程主

10、要是對(duì)uart進(jìn)行編進(jìn)行編程。在單片機(jī)作為從機(jī)的應(yīng)用中,由于單片機(jī)一般通過內(nèi)部的特殊功能寄存器程。在單片機(jī)作為從機(jī)的應(yīng)用中,由于單片機(jī)一般通過內(nèi)部的特殊功能寄存器(sfr,special functional register)對(duì))對(duì)uart管理,所以從實(shí)現(xiàn)的角度來說,管理,所以從實(shí)現(xiàn)的角度來說,編程重在熟悉串口工作寄存器(編程重在熟悉串口工作寄存器(tmod,scon,ti,riaccording to 51)的使用以及串口中斷服務(wù)程序的實(shí)現(xiàn)。的使用以及串口中斷服務(wù)程序的實(shí)現(xiàn)。 2.5.2 pc軟件設(shè)計(jì)軟件設(shè)計(jì) 由于由于pc機(jī)性能穩(wěn)定,功能強(qiáng)大,人機(jī)界面非常友好,又有很成熟的軟件開發(fā)環(huán)機(jī)性能

11、穩(wěn)定,功能強(qiáng)大,人機(jī)界面非常友好,又有很成熟的軟件開發(fā)環(huán)境,所以境,所以pc機(jī)在多機(jī)控制系統(tǒng)中,常常作為主機(jī)。在機(jī)在多機(jī)控制系統(tǒng)中,常常作為主機(jī)。在32位位windows系統(tǒng)中,串系統(tǒng)中,串口和其他通訊設(shè)備一樣是作為文件來處理的。串口的打開,關(guān)閉,讀寫所用的函口和其他通訊設(shè)備一樣是作為文件來處理的。串口的打開,關(guān)閉,讀寫所用的函數(shù)和操作文件的函數(shù)完全一致。如數(shù)和操作文件的函數(shù)完全一致。如createfile()()用于打開串口用于打開串口closehandle()()用于關(guān)閉串口用于關(guān)閉串口readfile()()讀串口接收到的數(shù)據(jù)讀串口接收到的數(shù)據(jù)writefile()()向串口發(fā)送數(shù)據(jù)向串

12、口發(fā)送數(shù)據(jù)getcommstate(),(),setcommstate()()配置串口配置串口getcommproperties()()得到串口屬性得到串口屬性 另外,另外,windows的的com控件也對(duì)串口進(jìn)行了封裝??梢允褂每丶矊?duì)串口進(jìn)行了封裝??梢允褂胢scomm控件來控件來進(jìn)行串口編程。進(jìn)行串口編程。 pc與單片機(jī)通訊一定要注意波特率的一致,在與單片機(jī)通訊一定要注意波特率的一致,在pc端,如果打開串口的波特端,如果打開串口的波特率不存在或者說系統(tǒng)不支持(指率不存在或者說系統(tǒng)不支持(指api函數(shù)),系統(tǒng)并不會(huì)報(bào)錯(cuò),而是會(huì)選擇相近的函數(shù)),系統(tǒng)并不會(huì)報(bào)錯(cuò),而是會(huì)選擇相近的波特率通訊。這

13、樣有可能導(dǎo)致上位機(jī)和下位機(jī)通訊波特率不一致,通訊不成功。波特率通訊。這樣有可能導(dǎo)致上位機(jī)和下位機(jī)通訊波特率不一致,通訊不成功。 2.6參考資料參考資料 vpc機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù)機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù) 北京航空航天大學(xué)北京航空航天大學(xué)vpc接口通信與接口通信與windows編程編程 精英科技精英科技 中國電力出版社中國電力出版社vmax232,max485 datasheetwww.maxim-,vat89c51 dvvisual c串口通信技術(shù)與工程實(shí)踐串口通信技術(shù)與工程實(shí)踐人民郵電出版社人民郵電出版社 southeast university2004.07總線與系統(tǒng)通訊講義總線與系統(tǒng)通訊

14、講義 第三節(jié)第三節(jié) 通用串行總線通用串行總線 southeast university2004.07v3.1 簡介簡介 通用串行總線就是universal serial bus(usb),它是一種微機(jī)外設(shè)的接口。其基本思路是采用通用連接器和自動(dòng)配置及熱插拔技術(shù)和相應(yīng)軟件,實(shí)現(xiàn)資源共享和外設(shè)的簡單快速連接。 它有以下技術(shù)優(yōu)勢:p使用usb不需要擴(kuò)展插卡,無須開發(fā)最底層驅(qū)動(dòng)程序。p連接usb外設(shè),帶電即插即用。p得到眾多公司的支持。p傳輸速率為 1.5mbps-12mbps。目前的usb2.0則達(dá)到了480mbps。p通過hub最多可支持127個(gè)外設(shè)。 southeast university20

15、04.073.2 usb系統(tǒng)組成系統(tǒng)組成usb主控制器主控制器/根集線器(根集線器(usb host controller/root hub)負(fù)責(zé)產(chǎn)生傳輸處理。主控制器對(duì)數(shù)據(jù)執(zhí)行一個(gè)并行到串行的負(fù)責(zé)產(chǎn)生傳輸處理。主控制器對(duì)數(shù)據(jù)執(zhí)行一個(gè)并行到串行的轉(zhuǎn)換,建立轉(zhuǎn)換,建立usb的傳輸處理,并傳給根集線器后在總線上發(fā)的傳輸處理,并傳給根集線器后在總線上發(fā)送。送。usb集線器集線器(usb hub)使使usb系統(tǒng)擴(kuò)展。它由控制器和中系統(tǒng)擴(kuò)展。它由控制器和中繼器組成,控制器管理主機(jī)和集線器之間的通信及幀定時(shí),繼器組成,控制器管理主機(jī)和集線器之間的通信及幀定時(shí),中繼器負(fù)責(zé)連接的建立和斷開。中繼器負(fù)責(zé)連接的建

16、立和斷開。usb設(shè)備分為設(shè)備分為hub設(shè)備和功能設(shè)備兩種。功能設(shè)備就是接在設(shè)備和功能設(shè)備兩種。功能設(shè)備就是接在hub上的外設(shè),它能在總線上發(fā)送和接受數(shù)據(jù)或控制信息,是上的外設(shè),它能在總線上發(fā)送和接受數(shù)據(jù)或控制信息,是完成某項(xiàng)具體功能的硬件設(shè)備。完成某項(xiàng)具體功能的硬件設(shè)備。3.2.1 usb硬件硬件 southeast university2004.073.2.2 usb層次拓?fù)鋱D層次拓?fù)鋱D usbusb采用一種層次化的新結(jié)構(gòu),該結(jié)構(gòu)以集線器為采用一種層次化的新結(jié)構(gòu),該結(jié)構(gòu)以集線器為usbusb設(shè)備提供連接點(diǎn)。設(shè)備提供連接點(diǎn)。usbusb主控主控制器包含集線器,是系統(tǒng)中所有制器包含集線器,是系統(tǒng)

17、中所有usbusb端口的起點(diǎn)。端口的起點(diǎn)。下圖所示的是下圖所示的是usb一種層次化的拓一種層次化的拓?fù)浣Y(jié)構(gòu)。撲結(jié)構(gòu)。 3.3 usb系統(tǒng)的接口信號(hào)與電氣特性系統(tǒng)的接口信號(hào)與電氣特性3.3.1 usb接口接口 usb總線包括總線包括4根信號(hào)線,用來傳送信號(hào)和提供電源。其中,根信號(hào)線,用來傳送信號(hào)和提供電源。其中,d+(綠),(綠),d-(白)為信號(hào)線,它們是一對(duì)雙絞線;另兩根是電源線(紅)和地線(黑)。(白)為信號(hào)線,它們是一對(duì)雙絞線;另兩根是電源線(紅)和地線(黑)。另外有些連接線還有屏蔽線繞在另外有些連接線還有屏蔽線繞在4根信號(hào)線的外側(cè)。根信號(hào)線的外側(cè)。 southeast universi

18、ty2004.07 southeast university2004.07v3.3.2 電氣特性電氣特性 usb主機(jī)或根主機(jī)或根hub對(duì)設(shè)備提供的對(duì)地電源電壓為對(duì)設(shè)備提供的對(duì)地電源電壓為4.75-5.25v,設(shè)備吸入的最大電流為,設(shè)備吸入的最大電流為500 ma。當(dāng)。當(dāng)usb設(shè)備首次被主設(shè)備首次被主機(jī)檢測到時(shí),設(shè)備吸入電流應(yīng)小于機(jī)檢測到時(shí),設(shè)備吸入電流應(yīng)小于100 ma。 usb設(shè)備有兩種供電方式,自給方式(設(shè)備自帶電源)和設(shè)備有兩種供電方式,自給方式(設(shè)備自帶電源)和總線供給方式??偩€供給方式。usb hub采用自給方式。為了省電,采用自給方式。為了省電,usb主機(jī)主機(jī)有一個(gè)獨(dú)立于有一個(gè)獨(dú)立

19、于usb的電源管理系統(tǒng)。的電源管理系統(tǒng)。3.4 傳輸類型傳輸類型 usb有有4種基本的傳輸類型:種基本的傳輸類型:3.4.1控制傳輸控制傳輸控制傳輸是雙向的,控制傳輸主要是做配置設(shè)備用,也可以做設(shè)備的其他特殊用途??刂苽鬏斒请p向的,控制傳輸主要是做配置設(shè)備用,也可以做設(shè)備的其他特殊用途。每個(gè)每個(gè)usbusb設(shè)備必須用端點(diǎn)設(shè)備必須用端點(diǎn)0 0來完成控制傳送,它用在當(dāng)來完成控制傳送,它用在當(dāng)usbusb設(shè)備第一次被設(shè)備第一次被usbusb主機(jī)主機(jī)檢測到時(shí),與檢測到時(shí),與usbusb主機(jī)交換信息、提供設(shè)備設(shè)置、對(duì)外設(shè)設(shè)定和傳送狀態(tài)這類雙主機(jī)交換信息、提供設(shè)備設(shè)置、對(duì)外設(shè)設(shè)定和傳送狀態(tài)這類雙向通信。向

20、通信。3.4.2批量傳輸批量傳輸批傳輸可以是單向的,也可以是雙向。它用于傳送大批數(shù)據(jù),這種數(shù)據(jù)的時(shí)間性不批傳輸可以是單向的,也可以是雙向。它用于傳送大批數(shù)據(jù),這種數(shù)據(jù)的時(shí)間性不強(qiáng),但要確保數(shù)據(jù)的正確性。在包的傳輸過程中,出現(xiàn)錯(cuò)誤,則重傳。如掃描強(qiáng),但要確保數(shù)據(jù)的正確性。在包的傳輸過程中,出現(xiàn)錯(cuò)誤,則重傳。如掃描儀、打印機(jī)。儀、打印機(jī)。3.4.3中斷傳輸中斷傳輸中斷傳輸是單向的,且僅輸入到主機(jī)。它用于不固定的、少量的數(shù)據(jù)傳送。當(dāng)設(shè)備中斷傳輸是單向的,且僅輸入到主機(jī)。它用于不固定的、少量的數(shù)據(jù)傳送。當(dāng)設(shè)備需要主機(jī)為其服務(wù)時(shí),向主機(jī)發(fā)送此類信息。如鼠標(biāo)、鍵盤。需要主機(jī)為其服務(wù)時(shí),向主機(jī)發(fā)送此類信息。

21、如鼠標(biāo)、鍵盤。3.4.4等時(shí)傳輸?shù)葧r(shí)傳輸?shù)葧r(shí)傳輸可以是單向的也可以是雙向的,用于傳輸連續(xù)性、實(shí)時(shí)的數(shù)據(jù)。傳輸速率等時(shí)傳輸可以是單向的也可以是雙向的,用于傳輸連續(xù)性、實(shí)時(shí)的數(shù)據(jù)。傳輸速率固定,時(shí)間性強(qiáng),傳輸中數(shù)據(jù)出錯(cuò)并不重傳。如數(shù)字音視頻設(shè)備。固定,時(shí)間性強(qiáng),傳輸中數(shù)據(jù)出錯(cuò)并不重傳。如數(shù)字音視頻設(shè)備。 southeast university2004.07 southeast university2004.073.5 包種類、包格式及包交換包種類、包格式及包交換 通過通過usb總線的傳輸包含一個(gè)或多個(gè)交換(總線的傳輸包含一個(gè)或多個(gè)交換(transaction),包是組成),包是組成usb交交換的

22、基本單位。包主要有標(biāo)志包(換的基本單位。包主要有標(biāo)志包(token),數(shù)據(jù)包(),數(shù)據(jù)包(data),握手包),握手包(handshake),特殊包(),特殊包(special)。)。usb總線上每一次交換至少需要前面總線上每一次交換至少需要前面的三個(gè)包。的三個(gè)包。 所有的包都由該包的所有的包都由該包的pid域來表征包含義。如下圖:域來表征包含義。如下圖: 3.5.1 標(biāo)志包標(biāo)志包 usb總線是一種基于標(biāo)志的總線協(xié)議,因此所有的交總線是一種基于標(biāo)志的總線協(xié)議,因此所有的交換都以標(biāo)志包為首部。標(biāo)志包定義了要傳輸?shù)慕粨Q類型。有換都以標(biāo)志包為首部。標(biāo)志包定義了要傳輸?shù)慕粨Q類型。有以下四類包:幀開始包

23、(以下四類包:幀開始包(sof)、接受包()、接受包(in)、發(fā)送包)、發(fā)送包(out)、設(shè)置包)、設(shè)置包(setup)。)。 southeast university2004.07 southeast university2004.07 一個(gè)數(shù)據(jù)包包括一個(gè)數(shù)據(jù)包包括pid(packet identifier)域、數(shù)據(jù)域和)域、數(shù)據(jù)域和crc(cyclic redundancy check)域三個(gè)部分。)域三個(gè)部分。pid域用于域用于確認(rèn)數(shù)據(jù)包類型;數(shù)據(jù)域?yàn)榫唧w的內(nèi)容;確認(rèn)數(shù)據(jù)包類型;數(shù)據(jù)域?yàn)榫唧w的內(nèi)容;crc域?yàn)檠h(huán)冗余校驗(yàn)。域?yàn)檠h(huán)冗余校驗(yàn)。 握手包由設(shè)備用來報(bào)告交換的狀態(tài),通過四種不同類

24、型的握握手包由設(shè)備用來報(bào)告交換的狀態(tài),通過四種不同類型的握手包可以傳送不同的結(jié)果報(bào)告。握手包是由數(shù)據(jù)的接受方發(fā)向數(shù)手包可以傳送不同的結(jié)果報(bào)告。握手包是由數(shù)據(jù)的接受方發(fā)向數(shù)據(jù)的發(fā)送方的。等時(shí)傳輸沒有握手包。該包只有一個(gè)據(jù)的發(fā)送方的。等時(shí)傳輸沒有握手包。該包只有一個(gè)pid域。域。 特殊包用于主機(jī)對(duì)低速設(shè)備通訊前,主機(jī)發(fā)給設(shè)備的預(yù)告包。特殊包用于主機(jī)對(duì)低速設(shè)備通訊前,主機(jī)發(fā)給設(shè)備的預(yù)告包。它由一個(gè)同步序列和一個(gè)全速傳送的它由一個(gè)同步序列和一個(gè)全速傳送的pid域組成。之后等待域組成。之后等待4個(gè)高個(gè)高速字節(jié)時(shí)間,以便速字節(jié)時(shí)間,以便hub打開低速端口并準(zhǔn)備接收低速信號(hào)。打開低速端口并準(zhǔn)備接收低速信號(hào)。

25、3.5.2 數(shù)據(jù)包、握手包、特殊包數(shù)據(jù)包、握手包、特殊包 southeast university2004.073.5.3 包交換包交換 所有所有usbusb總線上的傳輸都是進(jìn)行包的交換。每次交換至少涉及到標(biāo)志包、握手總線上的傳輸都是進(jìn)行包的交換。每次交換至少涉及到標(biāo)志包、握手包和數(shù)據(jù)包。包和數(shù)據(jù)包。 usb設(shè)備之間的傳輸首先由主機(jī)發(fā)出標(biāo)志包(設(shè)備之間的傳輸首先由主機(jī)發(fā)出標(biāo)志包(token又稱令牌),標(biāo)志包中又稱令牌),標(biāo)志包中有有地址碼、端點(diǎn)號(hào)、傳輸方向和傳輸類型等信息。其次是數(shù)據(jù)源向數(shù)據(jù)目的地發(fā)送的地址碼、端點(diǎn)號(hào)、傳輸方向和傳輸類型等信息。其次是數(shù)據(jù)源向數(shù)據(jù)目的地發(fā)送的數(shù)據(jù)包(數(shù)據(jù)包(da

26、ta)或者發(fā)送無數(shù)據(jù)傳輸?shù)闹甘拘畔ⅰT谝淮谓粨Q中,數(shù)據(jù)包最多可以)或者發(fā)送無數(shù)據(jù)傳輸?shù)闹甘拘畔ⅰT谝淮谓粨Q中,數(shù)據(jù)包最多可以攜帶的數(shù)據(jù)為攜帶的數(shù)據(jù)為1023b。最后是數(shù)據(jù)接受方往數(shù)據(jù)發(fā)送方回送一個(gè)握手包,提供本次。最后是數(shù)據(jù)接受方往數(shù)據(jù)發(fā)送方回送一個(gè)握手包,提供本次數(shù)據(jù)傳輸?shù)姆答佇畔?。?shù)據(jù)傳輸?shù)姆答佇畔ⅰ?在四種傳輸方式下,在四種傳輸方式下,分別有對(duì)應(yīng)的包交換模式,分別有對(duì)應(yīng)的包交換模式,以下是中斷傳輸下的包交換以下是中斷傳輸下的包交換示意:示意: southeast university2004.07 當(dāng)當(dāng)usb設(shè)備在設(shè)備在usb總線上連接或移走時(shí),主機(jī)通過總總線上連接或移走時(shí),主機(jī)通過總線

27、枚舉過程確認(rèn)和管理設(shè)備狀態(tài)的變遷。枚舉過程說明如線枚舉過程確認(rèn)和管理設(shè)備狀態(tài)的變遷。枚舉過程說明如下:下:1.usb設(shè)備連接到設(shè)備連接到hub后,后,hub通知主機(jī)發(fā)生設(shè)備接入事件設(shè)備進(jìn)入連通知主機(jī)發(fā)生設(shè)備接入事件設(shè)備進(jìn)入連接(接(attached)狀態(tài)。)狀態(tài)。hub中與該設(shè)備相接的端口處于關(guān)閉狀態(tài)。中與該設(shè)備相接的端口處于關(guān)閉狀態(tài)。2.主機(jī)檢測主機(jī)檢測hub,確認(rèn)設(shè)備接入事件和接入端口。,確認(rèn)設(shè)備接入事件和接入端口。3.主機(jī)將該端口使能,并傳送一個(gè)主機(jī)將該端口使能,并傳送一個(gè)reset命令。命令。4.hub持續(xù)送出持續(xù)送出100ms的的reset信號(hào),信號(hào)一結(jié)束,端口打開。信號(hào),信號(hào)一結(jié)束

28、,端口打開。hub提提供供100ma的電流,的電流,usb進(jìn)入上電(進(jìn)入上電(powered)狀態(tài),響應(yīng)默認(rèn)地址。)狀態(tài),響應(yīng)默認(rèn)地址。5.在在usb設(shè)備收到唯一地址前,通過設(shè)備默認(rèn)地址訪問端點(diǎn)設(shè)備收到唯一地址前,通過設(shè)備默認(rèn)地址訪問端點(diǎn)0對(duì)應(yīng)管道,對(duì)應(yīng)管道,主機(jī)讀取設(shè)備的描述器來獲得設(shè)備默認(rèn)管道的最大數(shù)據(jù)傳輸量。設(shè)備主機(jī)讀取設(shè)備的描述器來獲得設(shè)備默認(rèn)管道的最大數(shù)據(jù)傳輸量。設(shè)備處于地址默認(rèn)(處于地址默認(rèn)(default)狀態(tài)。)狀態(tài)。6.主機(jī)給主機(jī)給usb設(shè)備分發(fā)一個(gè)唯一的地址,設(shè)備進(jìn)入地址(設(shè)備分發(fā)一個(gè)唯一的地址,設(shè)備進(jìn)入地址(addressed)狀態(tài)。狀態(tài)。7.主機(jī)讀取設(shè)備的配置信息。主機(jī)

29、讀取設(shè)備的配置信息。8.主機(jī)向設(shè)備分發(fā)一個(gè)配置值。設(shè)備進(jìn)入配置(主機(jī)向設(shè)備分發(fā)一個(gè)配置值。設(shè)備進(jìn)入配置(configured)狀態(tài),所)狀態(tài),所有端點(diǎn)準(zhǔn)備就緒可以開始工作,設(shè)備可以使用。有端點(diǎn)準(zhǔn)備就緒可以開始工作,設(shè)備可以使用。3.6 usb設(shè)備狀態(tài)和總線枚舉設(shè)備狀態(tài)和總線枚舉 狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖 southeast university2004.073.7設(shè)計(jì)指南設(shè)計(jì)指南 v 使設(shè)備實(shí)現(xiàn)使設(shè)備實(shí)現(xiàn)usb通訊功能通常有兩種方式,使用具有通訊功能通常有兩種方式,使用具有usb控制器的控制器的mcu和使用專用和使用專用usb接口芯片。典型電路的原理圖和版圖設(shè)計(jì)規(guī)則一般接口芯片。典型電路的原理圖和

30、版圖設(shè)計(jì)規(guī)則一般在產(chǎn)品使用文檔中都會(huì)有所提及。在產(chǎn)品使用文檔中都會(huì)有所提及。v 使用使用usb接口芯片如果想要達(dá)到標(biāo)稱的最大速度,就需要是接口芯片如果想要達(dá)到標(biāo)稱的最大速度,就需要是dma工作工作方式,由于方式,由于usb接口芯片的控制器多半是由速度不快的微控制器構(gòu)成,接口芯片的控制器多半是由速度不快的微控制器構(gòu)成,簡單的通過微控制器訪問總線的模式讀取發(fā)送簡單的通過微控制器訪問總線的模式讀取發(fā)送usb數(shù)據(jù)所能達(dá)到的速度數(shù)據(jù)所能達(dá)到的速度是非常有限的。是非常有限的。vusb主控制器端的編程主要是主控制器端的編程主要是pc驅(qū)動(dòng)程序的編寫驅(qū)動(dòng)程序的編寫.其涉及到其涉及到windows wdm驅(qū)動(dòng)程序

31、的編寫,相對(duì)復(fù)雜。但有些公司已經(jīng)提供了驅(qū)動(dòng)程序的編寫,相對(duì)復(fù)雜。但有些公司已經(jīng)提供了windows的的驅(qū)動(dòng)程序,并已經(jīng)編寫好了軟件開發(fā)包,使驅(qū)動(dòng)程序,并已經(jīng)編寫好了軟件開發(fā)包,使pc端軟件開發(fā)大為簡化。端軟件開發(fā)大為簡化。v在在usb設(shè)備端的編程工作主要集中在枚舉過程的實(shí)現(xiàn),即要實(shí)現(xiàn)設(shè)備端的編程工作主要集中在枚舉過程的實(shí)現(xiàn),即要實(shí)現(xiàn)usb協(xié)協(xié)議的各種標(biāo)準(zhǔn)請(qǐng)求。因?yàn)槊杜e過程較為復(fù)雜,其軟件編寫也需要很大工議的各種標(biāo)準(zhǔn)請(qǐng)求。因?yàn)槊杜e過程較為復(fù)雜,其軟件編寫也需要很大工作量。網(wǎng)絡(luò)上有一些資源可以參考,如周立功單片機(jī)網(wǎng)站上有作量。網(wǎng)絡(luò)上有一些資源可以參考,如周立功單片機(jī)網(wǎng)站上有usbd12下位機(jī)驅(qū)動(dòng)程

32、序的下載。下位機(jī)驅(qū)動(dòng)程序的下載。 southeast university2004.07 southeast university2004.073.8 usb接口芯片接口芯片pdiusbd12u遵循遵循usb1.1規(guī)范規(guī)范u內(nèi)置內(nèi)置sie,fifo,收發(fā)器和穩(wěn)壓,收發(fā)器和穩(wěn)壓電路高性能電路高性能usb接口器件接口器件u兼容各種單片機(jī)和微處理器的兼容各種單片機(jī)和微處理器的2mbps并行接口速度并行接口速度u全自動(dòng)全自動(dòng)dma操作操作u集成集成320字節(jié)字節(jié)fifo存儲(chǔ)器存儲(chǔ)器u雙緩存方案易于實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)傳雙緩存方案易于實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)傳輸輸u可編程的時(shí)鐘頻率發(fā)生可編程的時(shí)鐘頻率發(fā)生u內(nèi)置上電復(fù)位和低

33、電壓復(fù)位電路內(nèi)置上電復(fù)位和低電壓復(fù)位電路uso-28和和tssop-28兩種封裝兩種封裝u工業(yè)級(jí)工作溫度范圍:工業(yè)級(jí)工作溫度范圍:-40到到+85u8kv的芯片級(jí)的芯片級(jí)esd電壓保護(hù)電壓保護(hù)u雙電壓工作方式:雙電壓工作方式:3.30.3v或或5v(3.6到到5.5v)3.9參考資料參考資料 vphilipsusbd12 datasheetphilipsusbd12 dvusb specificationusb svwindows wdm windows wdm 設(shè)備驅(qū)動(dòng)程序開發(fā)指南設(shè)備驅(qū)動(dòng)程序開發(fā)指南機(jī)械工業(yè)出版社機(jī)械工業(yè)出

34、版社vusb usb 總線接口開發(fā)指南總線接口開發(fā)指南國防工業(yè)出版社國防工業(yè)出版社v2.02.0硬件設(shè)計(jì)硬件設(shè)計(jì)清華大學(xué)出版社清華大學(xué)出版社 southeast university2004.07總線與系統(tǒng)通訊講義總線與系統(tǒng)通訊講義 第四節(jié)第四節(jié) ethernet southeast university2004.07 用以太網(wǎng)技術(shù)構(gòu)成的局域網(wǎng)在我們生活中無處不在。如果設(shè)備和系統(tǒng)具有通過用以太網(wǎng)技術(shù)構(gòu)成的局域網(wǎng)在我們生活中無處不在。如果設(shè)備和系統(tǒng)具有通過以太網(wǎng)來通訊的功能,那么其就可以利用以太網(wǎng)許多有利條件。以太網(wǎng)來通訊的功能,那么其就可以利用以太網(wǎng)許多有利條件。 相對(duì)于以太網(wǎng)上相對(duì)于以太網(wǎng)上

35、pcpc這樣的高速的吞吐量大的主機(jī)來說,我們通常的系統(tǒng)都是低這樣的高速的吞吐量大的主機(jī)來說,我們通常的系統(tǒng)都是低速的吞吐量小的,我們?cè)谶@里稱之為小系統(tǒng)。這樣的小系統(tǒng)存儲(chǔ)器容量不大,處理速的吞吐量小的,我們?cè)谶@里稱之為小系統(tǒng)。這樣的小系統(tǒng)存儲(chǔ)器容量不大,處理速度不高。也沒有必要支持速度不高。也沒有必要支持100m100m網(wǎng)絡(luò)。網(wǎng)絡(luò)。 采用以太網(wǎng)通訊的小系統(tǒng)將具有以下特點(diǎn):采用以太網(wǎng)通訊的小系統(tǒng)將具有以下特點(diǎn):n n系統(tǒng)可以從局域網(wǎng)內(nèi)任意一個(gè)節(jié)點(diǎn)接入系統(tǒng)可以從局域網(wǎng)內(nèi)任意一個(gè)節(jié)點(diǎn)接入n n和現(xiàn)有的網(wǎng)絡(luò)設(shè)備和主機(jī)不沖突,可以共用一個(gè)網(wǎng)絡(luò),不用重新鋪設(shè)通訊線路和現(xiàn)有的網(wǎng)絡(luò)設(shè)備和主機(jī)不沖突,可以共用一個(gè)

36、網(wǎng)絡(luò),不用重新鋪設(shè)通訊線路n n系統(tǒng)的擴(kuò)展很方便,可以使用標(biāo)準(zhǔn)網(wǎng)絡(luò)設(shè)備進(jìn)行總線的延長系統(tǒng)的擴(kuò)展很方便,可以使用標(biāo)準(zhǔn)網(wǎng)絡(luò)設(shè)備進(jìn)行總線的延長n n可以通過更改設(shè)備的可以通過更改設(shè)備的ipip地址來使多個(gè)設(shè)備接入局域網(wǎng)地址來使多個(gè)設(shè)備接入局域網(wǎng)n n如果設(shè)備的運(yùn)算能力較強(qiáng),可以達(dá)到很高的通訊速度如果設(shè)備的運(yùn)算能力較強(qiáng),可以達(dá)到很高的通訊速度 小系統(tǒng)通過以太網(wǎng)傳輸數(shù)據(jù),難點(diǎn)在于實(shí)現(xiàn)小系統(tǒng)通過以太網(wǎng)傳輸數(shù)據(jù),難點(diǎn)在于實(shí)現(xiàn)tcp/ip協(xié)議棧。通常我們只在一個(gè)協(xié)議棧。通常我們只在一個(gè)局域網(wǎng)內(nèi)通訊就足夠了。因而沒有必要完全實(shí)現(xiàn)局域網(wǎng)內(nèi)通訊就足夠了。因而沒有必要完全實(shí)現(xiàn)tcp/ip協(xié)議棧,通常要實(shí)現(xiàn)的是協(xié)議棧,

37、通常要實(shí)現(xiàn)的是mac級(jí)協(xié)議,簡易的級(jí)協(xié)議,簡易的arp協(xié)議,簡易的協(xié)議,簡易的ip和和udp協(xié)議,最好能實(shí)現(xiàn)協(xié)議,最好能實(shí)現(xiàn)ping功能。而功能。而tcp協(xié)議過于復(fù)雜,不適合在小系統(tǒng)上實(shí)現(xiàn)。協(xié)議過于復(fù)雜,不適合在小系統(tǒng)上實(shí)現(xiàn)。 4.1 簡介簡介4.2 協(xié)議層次協(xié)議層次 在在tcp/ip協(xié)議族中,有很多種協(xié)議。在這里我們只討論一些方便協(xié)議族中,有很多種協(xié)議。在這里我們只討論一些方便系統(tǒng)之間通訊和其相關(guān)的協(xié)議。系統(tǒng)之間通訊和其相關(guān)的協(xié)議。 southeast university2004.07tcp和和udp是兩種最為著名的運(yùn)輸層協(xié)議,二者都使用是兩種最為著名的運(yùn)輸層協(xié)議,二者都使用ip作為網(wǎng)絡(luò)層

38、協(xié)議。作為網(wǎng)絡(luò)層協(xié)議。雖然雖然tcp使用不可靠的使用不可靠的ip服務(wù),但它卻提供一種可靠的運(yùn)輸層服務(wù)。服務(wù),但它卻提供一種可靠的運(yùn)輸層服務(wù)。udp為應(yīng)用程序發(fā)送和接收數(shù)據(jù)報(bào)。一個(gè)數(shù)據(jù)報(bào)是指從發(fā)送方傳輸?shù)浇邮諡閼?yīng)用程序發(fā)送和接收數(shù)據(jù)報(bào)。一個(gè)數(shù)據(jù)報(bào)是指從發(fā)送方傳輸?shù)浇邮辗降囊粋€(gè)信息單元(例如,發(fā)送方指定的一定字節(jié)數(shù)的信息)。但是與方的一個(gè)信息單元(例如,發(fā)送方指定的一定字節(jié)數(shù)的信息)。但是與tcp不同的是,不同的是,udp是不可靠的,它不能保證數(shù)據(jù)報(bào)能安全無誤地到達(dá)最是不可靠的,它不能保證數(shù)據(jù)報(bào)能安全無誤地到達(dá)最終目的。終目的。ip是網(wǎng)絡(luò)層上的主要協(xié)議,同時(shí)被是網(wǎng)絡(luò)層上的主要協(xié)議,同時(shí)被tcp和和

39、udp使用。使用。tcp和和udp的每組數(shù)的每組數(shù)據(jù)都通過端系統(tǒng)和每個(gè)中間路由器中的據(jù)都通過端系統(tǒng)和每個(gè)中間路由器中的ip層在互聯(lián)網(wǎng)中進(jìn)行傳輸。在這里層在互聯(lián)網(wǎng)中進(jìn)行傳輸。在這里我們不討論的我們不討論的ip數(shù)據(jù)如何進(jìn)行路由選擇。數(shù)據(jù)如何進(jìn)行路由選擇。icmp是是ip協(xié)議的附屬協(xié)議。協(xié)議的附屬協(xié)議。ip層用它來與其他主機(jī)或路由器交換錯(cuò)誤報(bào)文層用它來與其他主機(jī)或路由器交換錯(cuò)誤報(bào)文和其他重要信息。盡管和其他重要信息。盡管icmp主要被主要被ip使用,但應(yīng)用程序也有可能訪問它。使用,但應(yīng)用程序也有可能訪問它。arp(地址解析協(xié)議)和(地址解析協(xié)議)和rarp(逆地址解析協(xié)議)是某些網(wǎng)絡(luò)接口(如(逆地址

40、解析協(xié)議)是某些網(wǎng)絡(luò)接口(如以太網(wǎng)和令牌環(huán)網(wǎng))使用的特殊協(xié)議,用來轉(zhuǎn)換以太網(wǎng)和令牌環(huán)網(wǎng))使用的特殊協(xié)議,用來轉(zhuǎn)換ip層和網(wǎng)絡(luò)接口層使用的層和網(wǎng)絡(luò)接口層使用的地址。地址。 southeast university2004.07 要使系統(tǒng)具有網(wǎng)絡(luò)通訊功能,就需要實(shí)現(xiàn)要使系統(tǒng)具有網(wǎng)絡(luò)通訊功能,就需要實(shí)現(xiàn)tcp/iptcp/ip協(xié)議棧,協(xié)議棧,協(xié)議棧其實(shí)是一組邏輯分層的函數(shù),一個(gè)完整的協(xié)議棧是協(xié)議棧其實(shí)是一組邏輯分層的函數(shù),一個(gè)完整的協(xié)議棧是很龐大的,在實(shí)際應(yīng)用中對(duì)于不同的系統(tǒng)的不同需要,我很龐大的,在實(shí)際應(yīng)用中對(duì)于不同的系統(tǒng)的不同需要,我們可以有選擇的實(shí)現(xiàn)部分協(xié)議棧的功能。因?yàn)橐蕴W(wǎng)在局們可以有選擇

41、的實(shí)現(xiàn)部分協(xié)議棧的功能。因?yàn)橐蕴W(wǎng)在局域網(wǎng)中占絕大部分,所以我們只討論基于以太網(wǎng)的網(wǎng)絡(luò)通域網(wǎng)中占絕大部分,所以我們只討論基于以太網(wǎng)的網(wǎng)絡(luò)通訊的實(shí)現(xiàn)。訊的實(shí)現(xiàn)。 如果系統(tǒng)需要和如果系統(tǒng)需要和pcpc之間進(jìn)行通訊,需要完成的工作有一之間進(jìn)行通訊,需要完成的工作有一下幾點(diǎn):下幾點(diǎn):n n必須實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)鏈路層的協(xié)議。必須實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)鏈路層的協(xié)議。n n實(shí)現(xiàn)簡單的實(shí)現(xiàn)簡單的arparp。n n要實(shí)現(xiàn)要實(shí)現(xiàn)ipip協(xié)議。協(xié)議。n n實(shí)現(xiàn)部分實(shí)現(xiàn)部分icmpicmp協(xié)議,最重要的,實(shí)現(xiàn)協(xié)議,最重要的,實(shí)現(xiàn)pingping功能,以方便系功能,以方便系統(tǒng)的調(diào)試。統(tǒng)的調(diào)試。n n不建議采用不建議采用tcpt

42、cp協(xié)議進(jìn)行網(wǎng)絡(luò)通訊,因?yàn)槠溥^于龐大和復(fù)雜,協(xié)議進(jìn)行網(wǎng)絡(luò)通訊,因?yàn)槠溥^于龐大和復(fù)雜,不適合小系統(tǒng)上實(shí)現(xiàn)。不適合小系統(tǒng)上實(shí)現(xiàn)。n n推薦實(shí)現(xiàn)推薦實(shí)現(xiàn)udpudp協(xié)議,并使用協(xié)議,并使用udpudp協(xié)議進(jìn)行系統(tǒng)間通訊。協(xié)議進(jìn)行系統(tǒng)間通訊。 southeast university2004.07總線與系統(tǒng)通訊講義總線與系統(tǒng)通訊講義 第四節(jié)第四節(jié) ethernet southeast university2004.07 在系統(tǒng)的硬件結(jié)構(gòu)上主要有以下兩種,在以太網(wǎng)體系結(jié)構(gòu)中,在系統(tǒng)的硬件結(jié)構(gòu)上主要有以下兩種,在以太網(wǎng)體系結(jié)構(gòu)中,傳輸介質(zhì)是可以不同,通常有屏蔽傳輸介質(zhì)是可以不同,通常有屏蔽/非屏蔽雙絞線,

43、粗纜,細(xì)纜,非屏蔽雙絞線,粗纜,細(xì)纜,光纜幾種,同時(shí)還有不同的通訊速度。在硬件體系上,將其分為光纜幾種,同時(shí)還有不同的通訊速度。在硬件體系上,將其分為兩部分,與通訊介質(zhì)相關(guān)的一部分兩部分,與通訊介質(zhì)相關(guān)的一部分phy和與介質(zhì)無關(guān)的一部分和與介質(zhì)無關(guān)的一部分mac,在兩部分之間通過,在兩部分之間通過mii媒體獨(dú)立接口進(jìn)行通訊。媒體獨(dú)立接口進(jìn)行通訊。v4.3 硬件架構(gòu)硬件架構(gòu)4.3.1 mac+phy+cpu southeast university2004.07 mac和和phy由一個(gè)芯片完成,如由一個(gè)芯片完成,如rtl8019,芯片與,芯片與mcu之間通過特定總線相連,一般有專用總線,之間通過

44、特定總線相連,一般有專用總線,pci總線,總線,pcmcia總線,總線, cardbus總線幾種。芯片前端接網(wǎng)絡(luò)隔離變總線幾種。芯片前端接網(wǎng)絡(luò)隔離變壓器,然后接壓器,然后接rj45水晶頭。水晶頭。 4.3.2 phy+cpu 某些面向網(wǎng)絡(luò)應(yīng)用的某些面向網(wǎng)絡(luò)應(yīng)用的mcu,其內(nèi)置了,其內(nèi)置了mac部分,這樣部分,這樣的系統(tǒng)中,只需要外接的系統(tǒng)中,只需要外接phy(如如rtl8201),隔離變壓器和,隔離變壓器和rj45接頭即可接頭即可 。 southeast university2004.074.4軟件編程指南軟件編程指南 4.4.1 sockets,pc實(shí)現(xiàn)與實(shí)現(xiàn)與uclinux實(shí)現(xiàn)實(shí)現(xiàn) 套接字

45、規(guī)范描述了網(wǎng)絡(luò)編程的一般性接口,是由套接字規(guī)范描述了網(wǎng)絡(luò)編程的一般性接口,是由berkley unix berkley unix 系統(tǒng)系統(tǒng)軟件發(fā)布機(jī)構(gòu)設(shè)計(jì)用來實(shí)現(xiàn)套接字接口的一套函數(shù)庫。其在軟件發(fā)布機(jī)構(gòu)設(shè)計(jì)用來實(shí)現(xiàn)套接字接口的一套函數(shù)庫。其在ucuc linux linux上上的實(shí)現(xiàn)與的實(shí)現(xiàn)與windowswindows上實(shí)現(xiàn)及其相似。這里介紹主要的套接字。上實(shí)現(xiàn)及其相似。這里介紹主要的套接字。n nsocket()socket()創(chuàng)建新的套接字創(chuàng)建新的套接字n naccept()accept()在套接字中接受連接在套接字中接受連接n nconnect()connect()建立一個(gè)到同位體的連

46、接建立一個(gè)到同位體的連接n nbind()bind()使一個(gè)局部地址和套接字相關(guān)聯(lián)使一個(gè)局部地址和套接字相關(guān)聯(lián)n nlisten()listen()為輸入建立一個(gè)收聽套接字為輸入建立一個(gè)收聽套接字n nsend()send()通過以建立的套接字發(fā)送數(shù)據(jù)通過以建立的套接字發(fā)送數(shù)據(jù)n nrecvrecv()()從套接字接受數(shù)據(jù)從套接字接受數(shù)據(jù)n nshutdown()shutdown()禁止套接字上的發(fā)送和接受工作禁止套接字上的發(fā)送和接受工作n nclosesocketclosesocket()()關(guān)閉套接字關(guān)閉套接字 southeast university2004.07 右圖反應(yīng)了客戶端到服務(wù)

47、右圖反應(yīng)了客戶端到服務(wù)器端連接的操作。所謂服務(wù)器端器端連接的操作。所謂服務(wù)器端是指等待連接的計(jì)算機(jī),客戶機(jī)是指等待連接的計(jì)算機(jī),客戶機(jī)是指最初向服務(wù)器發(fā)出連接的計(jì)是指最初向服務(wù)器發(fā)出連接的計(jì)算機(jī)。算機(jī)。 在服務(wù)器端,計(jì)算機(jī)首先用在服務(wù)器端,計(jì)算機(jī)首先用socket()函數(shù)創(chuàng)建一個(gè)套接字,函數(shù)創(chuàng)建一個(gè)套接字,并用并用bind()函數(shù)限定一個(gè)名字。函數(shù)限定一個(gè)名字。之后,服務(wù)器用之后,服務(wù)器用listen()函數(shù)來函數(shù)來偵聽這一連接。當(dāng)客戶調(diào)用偵聽這一連接。當(dāng)客戶調(diào)用connect()函數(shù)的時(shí)候,服務(wù)器函數(shù)的時(shí)候,服務(wù)器隨后調(diào)用隨后調(diào)用accept()函數(shù)。之后,函數(shù)。之后,客戶端和服務(wù)器通過客戶

48、端和服務(wù)器通過send()和和recv()函數(shù)發(fā)送和接受數(shù)據(jù)。等函數(shù)發(fā)送和接受數(shù)據(jù)。等到數(shù)據(jù)傳輸結(jié)束后,用到數(shù)據(jù)傳輸結(jié)束后,用closesocket()函數(shù)結(jié)束套接字。函數(shù)結(jié)束套接字。 southeast university2004.074.4.2tcp,udp與協(xié)議棧與協(xié)議棧 udp是我們?cè)O(shè)計(jì)具有網(wǎng)絡(luò)通訊功能的系統(tǒng)中較合適的協(xié)議,因?yàn)槭俏覀冊(cè)O(shè)計(jì)具有網(wǎng)絡(luò)通訊功能的系統(tǒng)中較合適的協(xié)議,因?yàn)閡dp不面向連接,這與我們常常采用的串口通訊有一樣的特性,在不面向連接,這與我們常常采用的串口通訊有一樣的特性,在udp基礎(chǔ)基礎(chǔ)上,我們可以擬定自己的協(xié)議,與應(yīng)答機(jī)制。上,我們可以擬定自己的協(xié)議,與應(yīng)答機(jī)制。

49、 之所以要一直實(shí)現(xiàn)到之所以要一直實(shí)現(xiàn)到udp協(xié)議層,是因?yàn)樵趨f(xié)議層,是因?yàn)樵趐c端,無論是端,無論是windows還是還是linux都有明確的編程接口,就是常說的都有明確的編程接口,就是常說的socket套接字,名字并不套接字,名字并不重要,其實(shí)質(zhì)是一組函數(shù),可以在系統(tǒng)之間進(jìn)行重要,其實(shí)質(zhì)是一組函數(shù),可以在系統(tǒng)之間進(jìn)行tcp和和udp通訊。如果通訊。如果用戶想在下一層如用戶想在下一層如(ip和和mac層層)通訊,必須重新編寫網(wǎng)絡(luò)驅(qū)動(dòng)程序,難通訊,必須重新編寫網(wǎng)絡(luò)驅(qū)動(dòng)程序,難度很高,與其如此,不如在下位機(jī)上實(shí)現(xiàn)度很高,與其如此,不如在下位機(jī)上實(shí)現(xiàn)udp,因?yàn)閺模驗(yàn)閺膇p到到udp的協(xié)議的協(xié)議層

50、編寫并不復(fù)雜。層編寫并不復(fù)雜。 如果系統(tǒng)間不需要與如果系統(tǒng)間不需要與pc通訊,那么在一個(gè)子網(wǎng)內(nèi),我們需要實(shí)現(xiàn)的通訊,那么在一個(gè)子網(wǎng)內(nèi),我們需要實(shí)現(xiàn)的協(xié)議棧還可以簡化,如我們可以只實(shí)現(xiàn)協(xié)議棧還可以簡化,如我們可以只實(shí)現(xiàn)ip協(xié)議,或者更直接的,只實(shí)現(xiàn)協(xié)議,或者更直接的,只實(shí)現(xiàn)mac層協(xié)議。在層協(xié)議。在mac層上實(shí)現(xiàn)我們自有的協(xié)議而與層上實(shí)現(xiàn)我們自有的協(xié)議而與ip協(xié)議不沖突,這協(xié)議不沖突,這可以通過修改可以通過修改mac協(xié)議頭來實(shí)現(xiàn)。協(xié)議頭來實(shí)現(xiàn)。 southeast university2004.074.4.3速度與效率速度與效率 作為一個(gè)運(yùn)算能力有限的系統(tǒng),其不可能充足使用全部網(wǎng)絡(luò)資源,作為一個(gè)

51、運(yùn)算能力有限的系統(tǒng),其不可能充足使用全部網(wǎng)絡(luò)資源,通常情況下,只能使用網(wǎng)絡(luò)資源的一小部分。實(shí)際驗(yàn)證中,使用通常情況下,只能使用網(wǎng)絡(luò)資源的一小部分。實(shí)際驗(yàn)證中,使用sumsang s3c4510網(wǎng)絡(luò)用處理器網(wǎng)絡(luò)用處理器arm7核心,主頻核心,主頻50mhz,100m網(wǎng)絡(luò)網(wǎng)絡(luò)mac,運(yùn)行,運(yùn)行uclinux操作系統(tǒng),實(shí)際傳輸試驗(yàn)中使用操作系統(tǒng),實(shí)際傳輸試驗(yàn)中使用udp協(xié)議加上層自協(xié)議加上層自定義的簡單協(xié)議,只能達(dá)到定義的簡單協(xié)議,只能達(dá)到8mbit/s的有效速率,實(shí)際網(wǎng)絡(luò)資源使用不的有效速率,實(shí)際網(wǎng)絡(luò)資源使用不到到10%。如果用普通單片機(jī)實(shí)現(xiàn)。如果用普通單片機(jī)實(shí)現(xiàn)udp傳輸實(shí)際速率更低。所以在設(shè)計(jì)

52、具傳輸實(shí)際速率更低。所以在設(shè)計(jì)具有網(wǎng)絡(luò)通訊功能的小系統(tǒng)時(shí)網(wǎng)絡(luò)速度不是主要限制條件。有網(wǎng)絡(luò)通訊功能的小系統(tǒng)時(shí)網(wǎng)絡(luò)速度不是主要限制條件。 southeast university2004.07 southeast university2004.074.5 典型硬件典型硬件4.5.1 rtl8019as rtl8019as rtl8019as 是一種高度集成的以太網(wǎng)芯片,能簡單的實(shí)現(xiàn)是一種高度集成的以太網(wǎng)芯片,能簡單的實(shí)現(xiàn)plug and playplug and play,并兼容并兼容ne2000ne2000, 掉電等特性。由于它擁有三種等級(jí)的掉電模式,所以它是作掉電等特性。由于它擁有三種等級(jí)的掉

53、電模式,所以它是作為綠色電腦的網(wǎng)絡(luò)設(shè)備的理想選擇。在全雙工模式下,如果是連接到一個(gè)同樣為綠色電腦的網(wǎng)絡(luò)設(shè)備的理想選擇。在全雙工模式下,如果是連接到一個(gè)同樣是全雙工的交換機(jī)或集線器,就可實(shí)現(xiàn)同時(shí)接收和發(fā)送。這個(gè)特性雖然不能把是全雙工的交換機(jī)或集線器,就可實(shí)現(xiàn)同時(shí)接收和發(fā)送。這個(gè)特性雖然不能把傳輸速率從傳輸速率從10mbps10mbps提高到提高到20mbps20mbps,但是在執(zhí)行以太網(wǎng),但是在執(zhí)行以太網(wǎng)csma/cdcsma/cd協(xié)議時(shí)可以避免協(xié)議時(shí)可以避免更多的沖突的發(fā)生。而更多的沖突的發(fā)生。而microsoftsplugmicrosoftsplug and play and play功能就

54、可以為用戶減輕對(duì)資功能就可以為用戶減輕對(duì)資源配置的煩惱源配置的煩惱( (如如irq i/o menoryirq i/o menory address address 等等) )。又或者是在一些特殊的場合,。又或者是在一些特殊的場合,為了對(duì)一些不支持為了對(duì)一些不支持microsofts plug and play microsofts plug and play 的器件的兼容,的器件的兼容,rtl8091as rtl8091as 還還可以選擇跳線模式或非跳線模式??梢赃x擇跳線模式或非跳線模式。 為了完整的支持為了完整的支持pnp pnp ,rtl8019asrtl8019as提供了自動(dòng)檢測提供了

55、自動(dòng)檢測10baset 10baset 集成收發(fā)器集成收發(fā)器(rj45)(rj45)還是還是aui bnc aui bnc 接口。除了接口。除了10baset10baset可以自動(dòng)極性修正外,可以自動(dòng)極性修正外,8 8路中斷請(qǐng)求和路中斷請(qǐng)求和16 16 位位i/oi/o地址都可以根據(jù)資源配置機(jī)動(dòng)調(diào)節(jié)。地址都可以根據(jù)資源配置機(jī)動(dòng)調(diào)節(jié)。 rtl8019as 支持支持16k 32k 64k 字節(jié)的字節(jié)的brom 另外還支持另外還支持flash menory和頁訪問方式,最大支持和頁訪問方式,最大支持4m字節(jié)字節(jié)(16k*256)此外還支持在運(yùn)行完此外還支持在運(yùn)行完brom后釋放內(nèi)存,以供系統(tǒng)其他程序

56、的運(yùn)行。后釋放內(nèi)存,以供系統(tǒng)其他程序的運(yùn)行。rtl8019as 在片內(nèi)已經(jīng)集成在片內(nèi)已經(jīng)集成了了16k 字節(jié)的字節(jié)的sram。 特性n n支持支持pnp pnp 自動(dòng)檢測模式自動(dòng)檢測模式n n支持支持ethernet ii ethernet ii 和和 ieee802.3 10base5ieee802.3 10base5, 10base210base2, 10baset10basetn n軟件兼容軟件兼容8 8 位或位或16 16 位的位的ne2000 ne2000 模式模式n n支持跳線和非跳線模式支持跳線和非跳線模式n n支持在非跳線模式下的支持在非跳線模式下的microsofts plu

57、g and play microsofts plug and play 配置配置n n支持在全雙工模式下的雙倍信道帶寬支持在全雙工模式下的雙倍信道帶寬n n內(nèi)建數(shù)據(jù)預(yù)取功能來改善性能內(nèi)建數(shù)據(jù)預(yù)取功能來改善性能n n支持支持utp aui bnc utp aui bnc 的自動(dòng)檢測的自動(dòng)檢測n n在在10baset 10baset 下支持自動(dòng)極性修正下支持自動(dòng)極性修正n n支持支持8 8 路中斷請(qǐng)求路中斷請(qǐng)求irqirqn n支持支持16 16 位位i/o i/o 地址地址n n支持以支持以16k 32k 64k 16k 32k 64k 和和16k 16k 每頁最多每頁最多256 256 頁的訪

58、問方式來訪問頁的訪問方式來訪問brombromn n支持在遠(yuǎn)程啟動(dòng)以后取消支持在遠(yuǎn)程啟動(dòng)以后取消brom brom 對(duì)芯片的控制對(duì)芯片的控制n n支持對(duì)支持對(duì)flash flash 的讀寫的讀寫n n內(nèi)建內(nèi)建16k sram16k sramn n可用可用9346 9346 來保存配置和來保存配置和id id 參數(shù)參數(shù)n n可以在板上對(duì)可以在板上對(duì)9346 9346 進(jìn)行編程進(jìn)行編程n n支持四盞可編程診斷支持四盞可編程診斷l(xiāng)edled southeast university2004.074.5.2rtl8201rtl8201是是10m/100m以太網(wǎng)以太網(wǎng)phy southeast univ

59、ersity2004.07 southeast university2004.07 southeast university2004.074.5.3隔離變壓器隔離變壓器 8052單片機(jī)控制單片機(jī)控制rtl8019網(wǎng)卡的電路圖網(wǎng)卡的電路圖 4.6參考資料參考資料 tcp/iptcp/ip詳解,卷詳解,卷1 1:協(xié)議:協(xié)議 電子工業(yè)出版社電子工業(yè)出版社 實(shí)戰(zhàn)實(shí)戰(zhàn)linux socketlinux socket編程編程 西安電子科技大學(xué)出版社西安電子科技大學(xué)出版社 visual cvisual c網(wǎng)絡(luò)通訊協(xié)議分析與應(yīng)用實(shí)現(xiàn)網(wǎng)絡(luò)通訊協(xié)議分析與應(yīng)用實(shí)現(xiàn)人民郵電出版社人民郵電出版社 rtl8019 dat

60、asheetrtl8019 datasheet www.realtek .com southeast university2004.07總線與系統(tǒng)通訊講義總線與系統(tǒng)通訊講義 第五節(jié)第五節(jié) iic總線總線 southeast university2004.07 philips公司開發(fā)了一個(gè)簡單的雙向兩線總線。實(shí)現(xiàn)公司開發(fā)了一個(gè)簡單的雙向兩線總線。實(shí)現(xiàn)ic之間之間的有效控制。這個(gè)總線就稱為的有效控制。這個(gè)總線就稱為inter ic 或或i2c 總線。所有符合總線。所有符合i2c總線的器件都包含了一個(gè)片上接口,使器件之間直接通過總線的器件都包含了一個(gè)片上接口,使器件之間直接通過i2c 總總線通訊。線

溫馨提示

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

評(píng)論

0/150

提交評(píng)論