1、行總線接口簡(jiǎn)介
眾所周知,單片機(jī)與外圍設(shè)備的通信方式可分為并行通信和串行通信,相應(yīng)的通信總線被稱為并行總線和串行總線。并行通信速度快,實(shí)時(shí)性好,但由于占用單片機(jī)的口線多(即使地址和數(shù)據(jù)線可部分復(fù)用),不適合作為小型化產(chǎn)品和分布式、遠(yuǎn)程測(cè)控系統(tǒng)的數(shù)據(jù)通信方式。串行通信只需一根和幾根數(shù)據(jù)傳輸線(兼作地址、控制線),不僅大大降低硬件成本,也有利于系統(tǒng)的擴(kuò)展設(shè)計(jì),所以串行總線廣泛應(yīng)用于單片機(jī)測(cè)控中。目前串行總線除了使用通用異步串行接口(UART,如:RS-232C/449/423/422/485)以外,應(yīng)用越來(lái)越多的是同步串行擴(kuò)展總線接口,主要有單總線、I2C、SPI、USB、MPS、Microwire/PLUS等。越來(lái)越多的外圍器件如A/D、E2PROM、集成智能傳感器等,都配置了同步串行擴(kuò)展總線接口I2C、SPI等,而擯棄了以往的并行總線接口。從20世紀(jì)90年代開(kāi)始,眾多的單片機(jī)廠商都陸續(xù)推出了
帶有同步串行接口的單片機(jī)(一般保留了異步口UART),如:Philips公司的8XC552和LPC76X系列,帶I2C接口;Motorola公司的M68HC05和M68HC11,ATMEL公司的AT89S8252以及新一代的基于RISC的AVR系列單片機(jī)都集成有SPI接口。可以說(shuō)串行總線是當(dāng)今單片機(jī)測(cè)控系統(tǒng)開(kāi)發(fā)的首選,只有在沒(méi)必要或不能使用串行總線的場(chǎng)合才用并行總線。文中將逐一介紹上述幾種同步串行擴(kuò)展總線及其接口方式,以便給大家選擇外圍器件及進(jìn)行系統(tǒng)設(shè)計(jì)提供一點(diǎn)借鑒。
2、幾種常見(jiàn)的同步串行總線接口的基本原理和使用方法
2.1I2C總線
I2C(Inter-IC)總線是英文INTERICBUS或ICTOICBUS的簡(jiǎn)稱,它是由Philips公司推出的一種基于兩線制的同步串行總線,被廣泛應(yīng)用于消費(fèi)類電子產(chǎn)品、通信產(chǎn)品、儀器儀表及工業(yè)測(cè)控系統(tǒng)中。在標(biāo)準(zhǔn)模式下,I2C總線的數(shù)據(jù)傳輸速率可達(dá)100間進(jìn)行雙向傳送。各種器件均并聯(lián)在這條總線上,而且每個(gè)器件都有惟一的地址。MCU發(fā)出的控制信號(hào)分為地址碼和數(shù)據(jù)碼兩部分:地址碼用來(lái)標(biāo)識(shí)器件地址,即確定和哪個(gè)器件進(jìn)行通信;數(shù)據(jù)碼就是通信的內(nèi)容。這樣,各器件雖然掛在同一條總線上,卻彼此獨(dú)立,互不干擾。圖2—1以AT89C51(本身不帶I2C接口,用I/O口模擬)接兩片E2PROMAT24C16為例簡(jiǎn)要說(shuō)明I2C接口的使用方法。
圖2—1中,由A0、A1、A2確定器件的地址,故U1的地址為000,U2的地址為001;R1、R2為上拉電阻;用AT89C51的P1.0、P1.1腳模擬出I2C的SCL和SDA信號(hào),對(duì)于有I2C的MCU直接接到對(duì)應(yīng)的SCL和SDA腳即可。
2.2SPI總線
SPI(SerialPeripheralInterface串行外設(shè)接口)是由Motorola公司提出的一種基于四線制的同步串行總線,它在速度要求不高、低功耗、需保存少量參數(shù)的智能化儀表及測(cè)控系統(tǒng)中得到廣泛應(yīng)用。使用SPI總線接口不僅能簡(jiǎn)化電路設(shè)計(jì),還可以提高設(shè)計(jì)的可靠性。SPI總線使用4條線:1)SCK(SerialClock),串行時(shí)鐘線,主機(jī)啟動(dòng)發(fā)送并產(chǎn)生SCK,從機(jī)被動(dòng)接收時(shí)鐘;2)MISO(MasterInSlaveOut),主機(jī)輸入從機(jī)輸出;3)MOSI(MasterOutSlaveIn),主機(jī)輸出從機(jī)輸入;4)(SlaveSelect),從機(jī)選擇信號(hào),低電平有效。典型的由SPI總線構(gòu)成的分布式測(cè)控系統(tǒng)如圖2—2所示。
圖2—2中,各器件的片選端或使能端由MCU的其它I/O端口來(lái)控制。同I2C一樣,SPI總線也可以用軟件來(lái)模擬。
2.3單總線(1-WIRE)
單總線是DALLAS公司的一項(xiàng)專利技術(shù),它將地址線、數(shù)據(jù)線、控制線、電源線合為一根信號(hào)線,允許在這根信號(hào)線上掛數(shù)百個(gè)測(cè)控對(duì)象,這些測(cè)控對(duì)象使用的芯片每個(gè)都有一個(gè)64位的ROM,也稱之為身份證號(hào),確保掛在單總線上后,可以被惟一地區(qū)分識(shí)別出來(lái)。ROM中含有CRC檢驗(yàn)碼,能確保數(shù)據(jù)交換可靠。芯片內(nèi)還有收、發(fā)控制和電源存儲(chǔ)電路,一般不用另附電源。這些芯片在檢測(cè)地點(diǎn)就把模擬信號(hào)數(shù)字化,單總線上傳送的是數(shù)字信號(hào),使系統(tǒng)的抗干擾性能好、可靠性高。單總線系統(tǒng)按單總線協(xié)議規(guī)定的時(shí)序和信號(hào)波形進(jìn)行初始化、識(shí)別器件和交換數(shù)據(jù),單片機(jī)I/O口P1、P2、P3中的任一位端口都可以與總線進(jìn)行雙向數(shù)據(jù)傳輸。通過(guò)單總線可以方便、便宜地構(gòu)建分布式單片機(jī)測(cè)控系統(tǒng)。圖2—3所示的環(huán)境監(jiān)控系統(tǒng),只需要一條雙絞線(一根為信號(hào)線,一根為地線)從單片機(jī)拉向監(jiān)控系統(tǒng),然后將各種監(jiān)控對(duì)象掛在其上就可以了。
2.4USB總線
USB(UniversalSerialBus)是1995年Microsoft、Compaq、IBM等公司聯(lián)合制定的一種新的串行通信協(xié)議。USB支持熱插拔和即插即用,USB接口可對(duì)外提供電源,USB2.0規(guī)范提供高達(dá)480Mbit/s的數(shù)據(jù)傳輸速率,最多支持127個(gè)設(shè)備。數(shù)據(jù)傳輸除了支持同步方式外,還可以采用控制、中斷和批量傳輸?shù)确绞健T趩纹瑱C(jī)應(yīng)用系統(tǒng)中,常用的USB接口方法有兩種:一種是系統(tǒng)外部擴(kuò)展USB接口器件(如NS公司的USBN9602);另一種是選用內(nèi)部帶USB接口的單片機(jī)(如ATMEL公司的AT43USB351M等)。
2.5MPS總線
MPS是MicroPortSaver(節(jié)省微處理器接口的器件)的縮寫,代表產(chǎn)品是Xicor公司的串行E2PROM存儲(chǔ)器X84XXX系列。MPS接口器件可直接連到處理器總線上,并通過(guò)標(biāo)準(zhǔn)總線讀寫時(shí)序進(jìn)行數(shù)據(jù)傳輸(可看作同步方式),在微控制器的控制線如、等的配合下,可以最大限度地節(jié)省I/O口,并簡(jiǎn)化邏輯編程。圖2—4以AT89C51接兩片E2PROMX84041為例簡(jiǎn)要說(shuō)明MPS接口的使用方法(X84041的片選接74LS138輸出即可,圖中省略)。
2.6Microwire和Microwire/PLUS總線
Microwire總線是美國(guó)國(guó)家半導(dǎo)體(NS)公司推出的三線同步串行總線。這種總線由一根數(shù)據(jù)輸出線(SO)、一根數(shù)據(jù)輸入線(SI)和一根時(shí)鐘線(SK)組成(但每個(gè)器件還要接一根片選線)。原始的Microwire總線上只能連接一片單片機(jī)作為主機(jī),總線上的其它設(shè)備都是從機(jī)。此后,NS公司推出了8位的COP800單片機(jī)系列,仍采用原來(lái)的Microwire總線,但單片機(jī)上的總線接口改成既可由自身發(fā)出時(shí)鐘,也可由外部輸入時(shí)鐘信號(hào),也就是說(shuō),連接到總線上的單片機(jī)既可以是主機(jī),也可以是從機(jī)。為了區(qū)別于原有的Microwire總線,稱這種新產(chǎn)品為增強(qiáng)型的Microwire/PLUS總線。增強(qiáng)型的Microwire/PLUS總線上允許連接多片單片機(jī)和外圍器件,因此,總線具有更大的靈活性和可變性,非常適用于分布式、多處理器的單片機(jī)測(cè)控系統(tǒng)。要改變一個(gè)系統(tǒng),只需改變連接到總線上的單片機(jī)及外圍器件的數(shù)量和型號(hào)。Microwire總線系統(tǒng)的典型結(jié)構(gòu)如圖2—5所示。
2.7其它的串行接口
除了以上介紹的5種串行擴(kuò)展總線接口,還有一些器件具有類似的總線接口,如DS1302,它是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘芯片,它可以對(duì)年、月、日、星期、時(shí)、分、秒進(jìn)行記時(shí),具有閏年補(bǔ)償功能。它采用三線制與MCU進(jìn)行通信:(1)I/O,串行數(shù)據(jù)輸入/輸出;(2)SCLK,串行時(shí)鐘輸入端,是串行數(shù)據(jù)的同步信號(hào);(3),復(fù)位兼片選端。
3、結(jié)論
以上簡(jiǎn)要論述了當(dāng)前單片機(jī)測(cè)控領(lǐng)域常見(jiàn)的幾種同步串行擴(kuò)展總線的接口方式,大家可以根據(jù)需要選擇適當(dāng)?shù)慕涌诜绞絹?lái)組成自己的單片機(jī)測(cè)控系統(tǒng)。一般來(lái)說(shuō),外圍器件或被控器(從機(jī))具有上述的一種或幾種串行接口;主控機(jī)可以有兩種選擇:(1)選擇有對(duì)應(yīng)接口的單片機(jī)。它們的內(nèi)部已經(jīng)具有了相應(yīng)的時(shí)序硬件控制邏輯,并提供了相應(yīng)的控制寄存器和中斷向量,只要按資料進(jìn)行編程控制即可;(2)用常用的單片機(jī),但是沒(méi)有相應(yīng)的同步串行接口,此時(shí),大部分情況下可以通過(guò)I/O口的模擬來(lái)實(shí)現(xiàn)接口的功能(就是用軟件模擬出通信過(guò)程中的時(shí)序變化),這樣做必然會(huì)增加編程的代碼量和降低系統(tǒng)的可靠性。
責(zé)任編輯:gt
-
傳感器
+關(guān)注
關(guān)注
2551文章
51170瀏覽量
754187 -
單片機(jī)
+關(guān)注
關(guān)注
6037文章
44564瀏覽量
635920 -
總線
+關(guān)注
關(guān)注
10文章
2888瀏覽量
88138
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論