<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于51單片機(jī)SPI器件的串口控制

          基于51單片機(jī)SPI器件的串口控制

          作者: 時(shí)間:2011-12-01 來(lái)源:網(wǎng)絡(luò) 收藏

          0 引 言
          串行外設(shè)接口(Serial Peripheral Interface,)是一種高速同步串行輸入/輸出端口,近年來(lái)廣泛應(yīng)用于移位寄存器、D/A轉(zhuǎn)換器、A/D轉(zhuǎn)換器、串行E2PROM、LED顯示驅(qū)動(dòng)器等外部設(shè)備的擴(kuò)展。接口可以共享,便于組成帶多個(gè)接口器件的系統(tǒng)。其傳送速率可編程,連接線少,具有良好的擴(kuò)展性。

          1 SPI接口介紹
          SPI是摩托羅拉公司推出的一種同步串行通信接口,用于微處理器、微控制器和外圍擴(kuò)展芯片之間的串行連接,現(xiàn)已發(fā)展成為一種工業(yè)標(biāo)準(zhǔn)。目前,各半導(dǎo)體公司推出了大量的帶有SPI接口的具有各種各樣功能的芯片,如RAM,E2PROM,F(xiàn)LASH ROM,A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器、LEDLCD顯示驅(qū)動(dòng)器、I/0接口芯片、實(shí)時(shí)時(shí)鐘、UART收發(fā)器等,為用戶的外圍擴(kuò)展提供了極其靈活而價(jià)廉的選擇。由于SPI總線接口只占用微處理器四個(gè)I/O口線,故采用SPI總線接口可以簡(jiǎn)化電路設(shè)計(jì)。節(jié)省很多常規(guī)電路中的接口器件和I/O口線,提高設(shè)計(jì)的可靠性。目前,已有部分廠家的具有SPI接口,如Philips的P89LPC900,Atmel的Atmega128等,但是,大部分不支持SPI接口。在實(shí)際應(yīng)用中,出于產(chǎn)品體積、成本和可擴(kuò)展性等方面的考慮,設(shè)計(jì)人員往往希望使用不具備SPI接口的來(lái)控制具備SPI接口的外圍器件?,F(xiàn)以AT89C2051單片機(jī)模擬SPI總線操作串行為例,如圖1所示,介紹利用單片機(jī)的I/O口通過(guò)軟件模擬SPI總線的實(shí)現(xiàn)方法。


          SPI使用的四條線是串行時(shí)鐘線(SCK)、主機(jī)輸入從機(jī)輸出線(MISO)、主機(jī)輸出從機(jī)輸入線(MOSI)、低電平有效的使能信號(hào)線(CS)。這樣,僅需3~4根數(shù)據(jù)線和控制線即可擴(kuò)展具有SPI接口的各種I/O器件。
          SPI 總線具有以下特點(diǎn):
          (1)因連線較少,可簡(jiǎn)化電路設(shè)計(jì)。并行總線擴(kuò)展方法通常需要8根數(shù)據(jù)線、8~16根地址線、2~3根控制線。而SPI總線設(shè)計(jì),僅需4根數(shù)據(jù)線和控制線即可完成并行擴(kuò)展所實(shí)現(xiàn)的功能。
          (2)器件統(tǒng)一編址,并與系統(tǒng)地址無(wú)關(guān),操作SPI獨(dú)立性好。
          (3)器件操作遵循統(tǒng)一的規(guī)范.使系統(tǒng)軟硬件具有良好的通用性。


          上一頁(yè) 1 2 3 下一頁(yè)

          關(guān)鍵詞: SPI 串口控制 AD7390 單片機(jī)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();