SPI總線在51單片機系統中的實現
發布時間:2009/3/2 0:00:00 訪問次數:694
一個完整的單片機系統,通常包括鍵盤輸入、顯示輸出、打印輸出、數據采集等許多功能模塊。這些功能模塊一般是通過i/o端口實現與單片機的數據交換,但是單片機的i/o端口有限,且一般用來處理數字信號,從而產生了總線式傳輸模式。
現在大多數單片機都是傳統的三總線結構,即地址,數據,控制三總線。由于方便控制,三總線得到廣泛的應用。但是作為并行總線,它也有一定的局限性。不適合遠距離的傳輸。與i/o口的數目存在矛盾。隨著電子技術的進步,發展出很多新的總線接口,如usb、i2c、can、spi、1-wire等。這些總線的特點都是串行接口,只需要幾根甚至一根線就可以實現數據的傳輸。本文通過對支持spi總線的ad器件max189性能分析,簡要介紹了spi總線在單片機系統中如何應用,并利用其制作一款簡易的電壓表。
一、spi總線簡介
spi(serial peripheral interface)是motorola公司提出的同步串行總線方式。因其硬件功能強大而被廣泛應用。在單片機組成的智能儀器和測控系統中。如果對速度要求不高,采用spi總線模式是個不錯的選擇。它可以節省i/o端口,提高外設的數目和系統的性能。標準spi總線由四根線組成:串行時鐘線(sck)、主機輸入/從機輸出線(miso)。主機輸出/從機輸入線(mosi)和片選信號(cs)。有的spi接口芯片帶有中斷信號線或沒有mosi。圖1給出了spi的典型時序圖。
spi主要性能如下:
全雙工,三線同步傳輸
1.05mbit/s的最大主機位速率
四種可編程主機位速率
可編程串行時鐘極性與相位
發送結束中斷標志
寫沖突保護
總線競爭保護
二、max189芯片
max189是美國美信公司設計的一種12位串行a/d轉換器。其內部集成了大帶寬跟蹤/保持電路和串行接口。轉換速率高,功耗低,精度高。并且有spi、microwire和tms320兼容的4線串行接口,與微處理器接口。只需要很少的口線,很節約資源。
max189的特點:
三線高速串行接口,12位分辨率
8.5 us逐次逼近型adc
單一5v工作電壓,工作電流1.5ma。關斷電流2ua
0-5v模擬輸入電壓范圍
使用片外時鐘源
外置參考電壓
內部跟蹤/保持電路,75ksps采樣速率
1/2lsb整體非線性度
max189的時序如圖2,表1給出了max189引腳功能。
pin 名稱 功能說明
1 vcc 電源輸入,+5v(±5%)
2 ain 模擬電壓輸入端,0-ref。
3 /shdn 三電平關閉輸入端,低電平關斷
4 ref 用于模擬信號的基準電壓端,使用外部基準源時用作輸入
5 gnd 模擬和數字地
6 dout 串行數據輸出端,數據在sclk的下降沿輸出
7 /cs 片選,低電平有效
8 sclk 串行時鐘輸入端(最大5mhz)
該簡易電壓表電路采用不帶spi接口的at89c2051單片機,其指令系統與51系列完全兼容。可以通過軟件模擬spi時序,包括串行時鐘。數據輸入和輸出。來實現對a/d器件max189的操作。所測電壓經過單片機的處理,采用三個七段數碼管顯示。采用sn74ls164擴展i/o口。max189的2腳為待測模擬電壓輸入端。圖3是簡易電壓表的原理圖,其中a為數碼管顯示電路,b為a/d轉換部分電路。
max189可以工作在兩種模式下。即普通狀態和關斷狀態。如果將shdn置低電平。器件處于美斷狀態,電流小于10 ua。當把shdn置高電平或懸空。器件就可以被操作。此時,cs在時鐘下降沿啟動轉換.在時鐘sclk的每一個上升沿把一個最高位為“1”的控制宇節的各位送入輸入移位寄存器.并啟動串行時鐘.開始將輸入電壓值逐次逼近轉換。它用輸入跟蹤/保持(t/h)和12位逐次逼近寄存器(sar)構成的電路系統將模擬信號轉換成12位數宇信號輸出。t/h電路不需要外部保持電容。輸出數據按照高位在前.低位在后的順序。在12個sclk的每一個下降沿決定逐次逼近的各位并將數據送到dout端。每一位轉換結束后dout由低電平變為高電平。(轉換過程中不能對sclk操作)按照時序要求。每輸入一個(移位)脈沖。下降沿取出一位數據。單片機讀取并做處理。讀出12位數據后,可以開始下一次轉換。
at89c2051的串行端口處于模式0。數據的發送和接收都是通過rxd引腳(這里只用來發送數據).txd則負責送出移位脈沖。其數據位由lsb開始發送/接收8個位。波特率固定為fosc/12。sn74ls164負責接收串行口發送的數據。在傳輸8個位后。其將數據并行送出驅動數碼管.顯示
一個完整的單片機系統,通常包括鍵盤輸入、顯示輸出、打印輸出、數據采集等許多功能模塊。這些功能模塊一般是通過i/o端口實現與單片機的數據交換,但是單片機的i/o端口有限,且一般用來處理數字信號,從而產生了總線式傳輸模式。
現在大多數單片機都是傳統的三總線結構,即地址,數據,控制三總線。由于方便控制,三總線得到廣泛的應用。但是作為并行總線,它也有一定的局限性。不適合遠距離的傳輸。與i/o口的數目存在矛盾。隨著電子技術的進步,發展出很多新的總線接口,如usb、i2c、can、spi、1-wire等。這些總線的特點都是串行接口,只需要幾根甚至一根線就可以實現數據的傳輸。本文通過對支持spi總線的ad器件max189性能分析,簡要介紹了spi總線在單片機系統中如何應用,并利用其制作一款簡易的電壓表。
一、spi總線簡介
spi(serial peripheral interface)是motorola公司提出的同步串行總線方式。因其硬件功能強大而被廣泛應用。在單片機組成的智能儀器和測控系統中。如果對速度要求不高,采用spi總線模式是個不錯的選擇。它可以節省i/o端口,提高外設的數目和系統的性能。標準spi總線由四根線組成:串行時鐘線(sck)、主機輸入/從機輸出線(miso)。主機輸出/從機輸入線(mosi)和片選信號(cs)。有的spi接口芯片帶有中斷信號線或沒有mosi。圖1給出了spi的典型時序圖。
spi主要性能如下:
全雙工,三線同步傳輸
1.05mbit/s的最大主機位速率
四種可編程主機位速率
可編程串行時鐘極性與相位
發送結束中斷標志
寫沖突保護
總線競爭保護
二、max189芯片
max189是美國美信公司設計的一種12位串行a/d轉換器。其內部集成了大帶寬跟蹤/保持電路和串行接口。轉換速率高,功耗低,精度高。并且有spi、microwire和tms320兼容的4線串行接口,與微處理器接口。只需要很少的口線,很節約資源。
max189的特點:
三線高速串行接口,12位分辨率
8.5 us逐次逼近型adc
單一5v工作電壓,工作電流1.5ma。關斷電流2ua
0-5v模擬輸入電壓范圍
使用片外時鐘源
外置參考電壓
內部跟蹤/保持電路,75ksps采樣速率
1/2lsb整體非線性度
max189的時序如圖2,表1給出了max189引腳功能。
pin 名稱 功能說明
1 vcc 電源輸入,+5v(±5%)
2 ain 模擬電壓輸入端,0-ref。
3 /shdn 三電平關閉輸入端,低電平關斷
4 ref 用于模擬信號的基準電壓端,使用外部基準源時用作輸入
5 gnd 模擬和數字地
6 dout 串行數據輸出端,數據在sclk的下降沿輸出
7 /cs 片選,低電平有效
8 sclk 串行時鐘輸入端(最大5mhz)
該簡易電壓表電路采用不帶spi接口的at89c2051單片機,其指令系統與51系列完全兼容。可以通過軟件模擬spi時序,包括串行時鐘。數據輸入和輸出。來實現對a/d器件max189的操作。所測電壓經過單片機的處理,采用三個七段數碼管顯示。采用sn74ls164擴展i/o口。max189的2腳為待測模擬電壓輸入端。圖3是簡易電壓表的原理圖,其中a為數碼管顯示電路,b為a/d轉換部分電路。
max189可以工作在兩種模式下。即普通狀態和關斷狀態。如果將shdn置低電平。器件處于美斷狀態,電流小于10 ua。當把shdn置高電平或懸空。器件就可以被操作。此時,cs在時鐘下降沿啟動轉換.在時鐘sclk的每一個上升沿把一個最高位為“1”的控制宇節的各位送入輸入移位寄存器.并啟動串行時鐘.開始將輸入電壓值逐次逼近轉換。它用輸入跟蹤/保持(t/h)和12位逐次逼近寄存器(sar)構成的電路系統將模擬信號轉換成12位數宇信號輸出。t/h電路不需要外部保持電容。輸出數據按照高位在前.低位在后的順序。在12個sclk的每一個下降沿決定逐次逼近的各位并將數據送到dout端。每一位轉換結束后dout由低電平變為高電平。(轉換過程中不能對sclk操作)按照時序要求。每輸入一個(移位)脈沖。下降沿取出一位數據。單片機讀取并做處理。讀出12位數據后,可以開始下一次轉換。
at89c2051的串行端口處于模式0。數據的發送和接收都是通過rxd引腳(這里只用來發送數據).txd則負責送出移位脈沖。其數據位由lsb開始發送/接收8個位。波特率固定為fosc/12。sn74ls164負責接收串行口發送的數據。在傳輸8個位后。其將數據并行送出驅動數碼管.顯示