SPI總線在51單片機系統(tǒng)中的實現(xiàn)
發(fā)布時間:2009/3/2 0:00:00 訪問次數(shù):713
一個完整的單片機系統(tǒng),通常包括鍵盤輸入、顯示輸出、打印輸出、數(shù)據(jù)采集等許多功能模塊。這些功能模塊一般是通過i/o端口實現(xiàn)與單片機的數(shù)據(jù)交換,但是單片機的i/o端口有限,且一般用來處理數(shù)字信號,從而產(chǎn)生了總線式傳輸模式。
現(xiàn)在大多數(shù)單片機都是傳統(tǒng)的三總線結(jié)構(gòu),即地址,數(shù)據(jù),控制三總線。由于方便控制,三總線得到廣泛的應(yīng)用。但是作為并行總線,它也有一定的局限性。不適合遠(yuǎn)距離的傳輸。與i/o口的數(shù)目存在矛盾。隨著電子技術(shù)的進步,發(fā)展出很多新的總線接口,如usb、i2c、can、spi、1-wire等。這些總線的特點都是串行接口,只需要幾根甚至一根線就可以實現(xiàn)數(shù)據(jù)的傳輸。本文通過對支持spi總線的ad器件max189性能分析,簡要介紹了spi總線在單片機系統(tǒng)中如何應(yīng)用,并利用其制作一款簡易的電壓表。
一、spi總線簡介
spi(serial peripheral interface)是motorola公司提出的同步串行總線方式。因其硬件功能強大而被廣泛應(yīng)用。在單片機組成的智能儀器和測控系統(tǒng)中。如果對速度要求不高,采用spi總線模式是個不錯的選擇。它可以節(jié)省i/o端口,提高外設(shè)的數(shù)目和系統(tǒng)的性能。標(biāo)準(zhǔn)spi總線由四根線組成:串行時鐘線(sck)、主機輸入/從機輸出線(miso)。主機輸出/從機輸入線(mosi)和片選信號(cs)。有的spi接口芯片帶有中斷信號線或沒有mosi。圖1給出了spi的典型時序圖。
spi主要性能如下:
全雙工,三線同步傳輸
1.05mbit/s的最大主機位速率
四種可編程主機位速率
可編程串行時鐘極性與相位
發(fā)送結(jié)束中斷標(biāo)志
寫沖突保護
總線競爭保護
二、max189芯片
max189是美國美信公司設(shè)計的一種12位串行a/d轉(zhuǎn)換器。其內(nèi)部集成了大帶寬跟蹤/保持電路和串行接口。轉(zhuǎn)換速率高,功耗低,精度高。并且有spi、microwire和tms320兼容的4線串行接口,與微處理器接口。只需要很少的口線,很節(jié)約資源。
max189的特點:
三線高速串行接口,12位分辨率
8.5 us逐次逼近型adc
單一5v工作電壓,工作電流1.5ma。關(guān)斷電流2ua
0-5v模擬輸入電壓范圍
使用片外時鐘源
外置參考電壓
內(nèi)部跟蹤/保持電路,75ksps采樣速率
1/2lsb整體非線性度
max189的時序如圖2,表1給出了max189引腳功能。
pin 名稱 功能說明
1 vcc 電源輸入,+5v(±5%)
2 ain 模擬電壓輸入端,0-ref。
3 /shdn 三電平關(guān)閉輸入端,低電平關(guān)斷
4 ref 用于模擬信號的基準(zhǔn)電壓端,使用外部基準(zhǔn)源時用作輸入
5 gnd 模擬和數(shù)字地
6 dout 串行數(shù)據(jù)輸出端,數(shù)據(jù)在sclk的下降沿輸出
7 /cs 片選,低電平有效
8 sclk 串行時鐘輸入端(最大5mhz)
該簡易電壓表電路采用不帶spi接口的at89c2051單片機,其指令系統(tǒng)與51系列完全兼容?梢酝ㄟ^軟件模擬spi時序,包括串行時鐘。數(shù)據(jù)輸入和輸出。來實現(xiàn)對a/d器件max189的操作。所測電壓經(jīng)過單片機的處理,采用三個七段數(shù)碼管顯示。采用sn74ls164擴展i/o口。max189的2腳為待測模擬電壓輸入端。圖3是簡易電壓表的原理圖,其中a為數(shù)碼管顯示電路,b為a/d轉(zhuǎn)換部分電路。
max189可以工作在兩種模式下。即普通狀態(tài)和關(guān)斷狀態(tài)。如果將shdn置低電平。器件處于美斷狀態(tài),電流小于10 ua。當(dāng)把shdn置高電平或懸空。器件就可以被操作。此時,cs在時鐘下降沿啟動轉(zhuǎn)換.在時鐘sclk的每一個上升沿把一個最高位為“1”的控制宇節(jié)的各位送入輸入移位寄存器.并啟動串行時鐘.開始將輸入電壓值逐次逼近轉(zhuǎn)換。它用輸入跟蹤/保持(t/h)和12位逐次逼近寄存器(sar)構(gòu)成的電路系統(tǒng)將模擬信號轉(zhuǎn)換成12位數(shù)宇信號輸出。t/h電路不需要外部保持電容。輸出數(shù)據(jù)按照高位在前.低位在后的順序。在12個sclk的每一個下降沿決定逐次逼近的各位并將數(shù)據(jù)送到dout端。每一位轉(zhuǎn)換結(jié)束后dout由低電平變?yōu)楦唠娖健?轉(zhuǎn)換過程中不能對sclk操作)按照時序要求。每輸入一個(移位)脈沖。下降沿取出一位數(shù)據(jù)。單片機讀取并做處理。讀出12位數(shù)據(jù)后,可以開始下一次轉(zhuǎn)換。
at89c2051的串行端口處于模式0。數(shù)據(jù)的發(fā)送和接收都是通過rxd引腳(這里只用來發(fā)送數(shù)據(jù)).txd則負(fù)責(zé)送出移位脈沖。其數(shù)據(jù)位由lsb開始發(fā)送/接收8個位。波特率固定為fosc/12。sn74ls164負(fù)責(zé)接收串行口發(fā)送的數(shù)據(jù)。在傳輸8個位后。其將數(shù)據(jù)并行送出驅(qū)動數(shù)碼管.顯示
一個完整的單片機系統(tǒng),通常包括鍵盤輸入、顯示輸出、打印輸出、數(shù)據(jù)采集等許多功能模塊。這些功能模塊一般是通過i/o端口實現(xiàn)與單片機的數(shù)據(jù)交換,但是單片機的i/o端口有限,且一般用來處理數(shù)字信號,從而產(chǎn)生了總線式傳輸模式。
現(xiàn)在大多數(shù)單片機都是傳統(tǒng)的三總線結(jié)構(gòu),即地址,數(shù)據(jù),控制三總線。由于方便控制,三總線得到廣泛的應(yīng)用。但是作為并行總線,它也有一定的局限性。不適合遠(yuǎn)距離的傳輸。與i/o口的數(shù)目存在矛盾。隨著電子技術(shù)的進步,發(fā)展出很多新的總線接口,如usb、i2c、can、spi、1-wire等。這些總線的特點都是串行接口,只需要幾根甚至一根線就可以實現(xiàn)數(shù)據(jù)的傳輸。本文通過對支持spi總線的ad器件max189性能分析,簡要介紹了spi總線在單片機系統(tǒng)中如何應(yīng)用,并利用其制作一款簡易的電壓表。
一、spi總線簡介
spi(serial peripheral interface)是motorola公司提出的同步串行總線方式。因其硬件功能強大而被廣泛應(yīng)用。在單片機組成的智能儀器和測控系統(tǒng)中。如果對速度要求不高,采用spi總線模式是個不錯的選擇。它可以節(jié)省i/o端口,提高外設(shè)的數(shù)目和系統(tǒng)的性能。標(biāo)準(zhǔn)spi總線由四根線組成:串行時鐘線(sck)、主機輸入/從機輸出線(miso)。主機輸出/從機輸入線(mosi)和片選信號(cs)。有的spi接口芯片帶有中斷信號線或沒有mosi。圖1給出了spi的典型時序圖。
spi主要性能如下:
全雙工,三線同步傳輸
1.05mbit/s的最大主機位速率
四種可編程主機位速率
可編程串行時鐘極性與相位
發(fā)送結(jié)束中斷標(biāo)志
寫沖突保護
總線競爭保護
二、max189芯片
max189是美國美信公司設(shè)計的一種12位串行a/d轉(zhuǎn)換器。其內(nèi)部集成了大帶寬跟蹤/保持電路和串行接口。轉(zhuǎn)換速率高,功耗低,精度高。并且有spi、microwire和tms320兼容的4線串行接口,與微處理器接口。只需要很少的口線,很節(jié)約資源。
max189的特點:
三線高速串行接口,12位分辨率
8.5 us逐次逼近型adc
單一5v工作電壓,工作電流1.5ma。關(guān)斷電流2ua
0-5v模擬輸入電壓范圍
使用片外時鐘源
外置參考電壓
內(nèi)部跟蹤/保持電路,75ksps采樣速率
1/2lsb整體非線性度
max189的時序如圖2,表1給出了max189引腳功能。
pin 名稱 功能說明
1 vcc 電源輸入,+5v(±5%)
2 ain 模擬電壓輸入端,0-ref。
3 /shdn 三電平關(guān)閉輸入端,低電平關(guān)斷
4 ref 用于模擬信號的基準(zhǔn)電壓端,使用外部基準(zhǔn)源時用作輸入
5 gnd 模擬和數(shù)字地
6 dout 串行數(shù)據(jù)輸出端,數(shù)據(jù)在sclk的下降沿輸出
7 /cs 片選,低電平有效
8 sclk 串行時鐘輸入端(最大5mhz)
該簡易電壓表電路采用不帶spi接口的at89c2051單片機,其指令系統(tǒng)與51系列完全兼容?梢酝ㄟ^軟件模擬spi時序,包括串行時鐘。數(shù)據(jù)輸入和輸出。來實現(xiàn)對a/d器件max189的操作。所測電壓經(jīng)過單片機的處理,采用三個七段數(shù)碼管顯示。采用sn74ls164擴展i/o口。max189的2腳為待測模擬電壓輸入端。圖3是簡易電壓表的原理圖,其中a為數(shù)碼管顯示電路,b為a/d轉(zhuǎn)換部分電路。
max189可以工作在兩種模式下。即普通狀態(tài)和關(guān)斷狀態(tài)。如果將shdn置低電平。器件處于美斷狀態(tài),電流小于10 ua。當(dāng)把shdn置高電平或懸空。器件就可以被操作。此時,cs在時鐘下降沿啟動轉(zhuǎn)換.在時鐘sclk的每一個上升沿把一個最高位為“1”的控制宇節(jié)的各位送入輸入移位寄存器.并啟動串行時鐘.開始將輸入電壓值逐次逼近轉(zhuǎn)換。它用輸入跟蹤/保持(t/h)和12位逐次逼近寄存器(sar)構(gòu)成的電路系統(tǒng)將模擬信號轉(zhuǎn)換成12位數(shù)宇信號輸出。t/h電路不需要外部保持電容。輸出數(shù)據(jù)按照高位在前.低位在后的順序。在12個sclk的每一個下降沿決定逐次逼近的各位并將數(shù)據(jù)送到dout端。每一位轉(zhuǎn)換結(jié)束后dout由低電平變?yōu)楦唠娖健?轉(zhuǎn)換過程中不能對sclk操作)按照時序要求。每輸入一個(移位)脈沖。下降沿取出一位數(shù)據(jù)。單片機讀取并做處理。讀出12位數(shù)據(jù)后,可以開始下一次轉(zhuǎn)換。
at89c2051的串行端口處于模式0。數(shù)據(jù)的發(fā)送和接收都是通過rxd引腳(這里只用來發(fā)送數(shù)據(jù)).txd則負(fù)責(zé)送出移位脈沖。其數(shù)據(jù)位由lsb開始發(fā)送/接收8個位。波特率固定為fosc/12。sn74ls164負(fù)責(zé)接收串行口發(fā)送的數(shù)據(jù)。在傳輸8個位后。其將數(shù)據(jù)并行送出驅(qū)動數(shù)碼管.顯示
熱門點擊
- PICC編譯環(huán)境編寫PIC單片機程序的探討
- 模擬“火星”漫步
- 意法發(fā)布基于STM8微控制器的感應(yīng)方案
- 基于Proteus軟件仿真與Keil的單片機
- MCS-51單片機主要應(yīng)用特性
- 關(guān)于單片機中斷多優(yōu)先級的軟件擴展方法
- SPI總線在51單片機系統(tǒng)中的實現(xiàn)
- 基于利用單片機構(gòu)成高精度PWM式12位D/A
- 8XC51FA /FB/FC單片機主要特性
- 英特爾推出四款獨具特色的凌動處理器
推薦技術(shù)資料
- 硬盤式MP3播放器終級改
- 一次偶然的機會我結(jié)識了NE0 2511,那是一個遠(yuǎn)方的... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究