「電路「芯」說」單片機IO擴展

2020-12-20 樂創客

單片機IO擴展方案討論

世界上最尷尬的事情是什麼?這個我真不知道。但是做電子系統時最尷尬的事莫過於想要增加一個新的功能卻發現單片機的引腳不夠。

在我們日常的電路設計時,除了最基本的產品需求要滿足之外,還需要考慮的就是整個電路設計的成本,在很多公司中,成熟產品的cost down(成本降低)也基本上是個日常日程。產品成本的cost down比起供應鏈端哥們的努力,設計源頭的cost down顯然更加直接簡單。一個好的電子工程師並不是能設計出多麼複雜穩定的電路,而是可以利用最簡單最便宜的方案來滿足複雜的產品設計要求。

在我們做單片機選型的時候,往往會發現這樣一個規律,同一個core的單片機選型時,單片機的引腳越多,其單價就越貴。以STM32為例,LQFP32封裝的價格是最便宜的,往上依次是LQFP48封裝,LQFP64封裝,LQFP100封裝,LQFP144封裝。在我們選型時,往往單片機的內部資源LQFP48封裝的引腳就能滿足我們的需求,正當我們決定選用這個晶片時,發現正好少了幾個用作IO口的引腳,因此不得不選用更高一級別的LQFP64封裝,正由於這個原因,電路的成本增加了好幾塊RMB。其實解決單片機IO口不夠用的情況,除了選用引腳更多的晶片之外,還有一個簡單而便宜的方法,那就是IO口擴展。

單片機的IO口擴展一般有以下三種方案。

串轉並晶片

串轉並晶片來擴展單片機的IO可能是成本最低的IO擴展解決方案,而且對於單片機來說可以犧牲最少的埠來獲得最多的埠擴展收益。串轉並方案所利用的晶片就是我們日常所謂的「移位寄存器」晶片。由於移位寄存器是一種單向器件,因此需要利用只能做串行數據轉並行數據的移位輸出寄存器晶片和只能做並行數據轉串行數據的移位輸入寄存器晶片來完成這個單片機IO口的雙向傳輸方案。

首先來討論單片機輸出口的擴展方案。單片機輸出口擴展需要利用串行數據轉並行數據的移位寄存器晶片,最常用的晶片是74HC595。

74HC595是一個8位串行輸入、平行輸出的位移緩存器:平行輸出為三態輸出。我們從它的邏輯框圖中可以看到,這個74HC595晶片內部分成三個部分:

圖中紅色框選出的是移位寄存器單元,這個單元的功能為SER引腳上的數據會在每個SCK上升沿到來時被移位進入移位寄存器。

圖中藍色部分框選出的是數據暫存器單元,其實這裡就是8個並聯的D觸發器,這8個D觸發器的輸出分別和其對應的前級移位寄存器輸出端相連,在每個RCK上升沿到來時就將數據鎖存住。

圖中黃色框選出的是輸出門控電路,這是8個三態門組成的電路,當G非為低電平時,三態門被開啟,輸出有效,反之晶片輸出為高阻狀態。

最後一個Q』H引腳,是將串行數據輸出的,比如當SCK第8個脈衝到來時,8個移位寄存器正好可以存儲一個字節的數據,但是當第9個脈衝到來時,最先來的那個SER上的數據會被最晚到來的第9個脈衝頂出來,頂出來的那一位數據就會出現在Q』H引腳上面,這個引腳的主要目的是用來做74HC595晶片擴展的。

接著來討論單片機輸入口的擴展方案。單片機輸入口擴展需要利用並行數據轉串行數據的移位寄存器晶片,最常用的晶片是74HC165。

74HC165是8位並行讀取或串行輸入移位寄存器,可在末級得到互補的串行輸出(Q7和!Q7),當異步並行讀取引腳(!PL)輸入為低時,從D0到D7口輸入的並行數據將被讀取進寄存器內。而當異步並行讀取引腳為高時,數據將在每個時鐘脈衝的上升沿從 引腳串行進入寄存器並將現有數據右移一位( 以此類推)。利用這種特性,只要把Q7輸出綁定到下一級的輸入,即可實現移位寄存器位數的擴展。

74HC165的時鐘輸入是一個「門控與」結構,CP(時鐘脈衝)和CE(時鐘允許)共同產生有效時鐘輸入。只有在CE(時鐘允許)為低時,CP(時鐘脈衝)才有效。

應當注意的是,在PL上升沿到來前,CP或者CE必須置高,以防止數據在PL的狀態尚未穩定時發生移位。

以上就是關於移位寄存器用來擴展單片機IO口的,但是移位寄存器擴展出來的單片機IO口只能用作一些低速設備的驅動擴展,如按鍵,LED等,無法去驅動一些高速的設備,因為串行數據轉並行數據都是通過循環一位一位地移出來的,因此速度都是有限的。

專用IO擴展晶片

專用的IO擴展晶片很多,這裡以NXP的PCF8574為例。

PCF8574是一種矽CMOS電路。它通過雙線雙向總線(I2C)為大多數微控制器系列提供通用遠程I/O擴展。

該器件由8位準雙向埠和I2C總線接口組成。PCF8574具有低電流消耗,包括鎖存輸出,具有高電流驅動能力,可直接驅動LED。它還具有中斷線(INT),可以連接到微控制器的中斷邏輯。通過在這條線上發送一個中斷信號,遠程I/O可以通知微控制器其埠上是否有傳入數據,而無需通過I2C總線進行通信。這意味著PCF8574仍然是一個簡單的從設備。PCF8674具有以下特性:

工作電源電壓2.5至6 V

待機電流消耗低,最大10A

I2C到並行埠擴展器

漏極開路中斷輸出

I2C總線的8位並行I/O埠

兼容大多數微控制器

鎖定輸出,具有高電流驅動能力,可直接驅動LED

通過3個硬體地址引腳尋址,最多可使用8個設備(PCF8574A最多可使用16個)

DIP16或節省空間的SO16或SSOP20封裝。

說到專用的IO擴展晶片,其大致功能和移位寄存器相似,細節上還是有很多不同,當然專用的IO擴展晶片功能更加強大,比如PCF8574的IO口能同時支持輸入輸出功能。這些細緻的功能用起來雖然更加順手,方便,但是跟其昂貴的售價比起來,這些功能顯然性價比太低。

以上就是兩種單片機IO口擴展的方案,孰優孰劣,一目了然。

相關焦點

  • 「電路「芯」說」單片機ADC擴展
    單片機ADC擴展方案討論早在幾天前,我寫了一篇關於單片機IO口擴展的文章,接著有網友和我來討論關於ADC擴展的問題了,關於這個問題,這篇文章有詳細的討論。單片機ADC為何要擴展現在的主流MCU都內置了不止一個多通道的ADC,可以滿足我們平時的簡單應用,這些簡單應用是指應用在一些對模擬量採集速度不高,精度能接受的場合下。但是對於一些高精度,高速度的情況下,外置的專用ADC晶片仍然是我們必須要選擇的,哪怕以很高的金錢成本為代價。
  • 基於51單片機的電子廣告牌電路設計
    2 元器件介紹2.1 AT89S51單片機簡介 AT89S51擁有4 KB的可編程的快閃記憶體(FLASHProgrammahle AND Erasable Read Only Memory)。片上的快閃記憶體允許在系統內再編程,在系統開發時可以十分容易地進行程序修改,即使程序錯誤也不會成為廢品。
  • 51單片機程序存儲器擴展
    在單片機的擴展中,要分別考慮程序存儲器及數據存儲器的擴展。存儲器是單片機系統中使用最多的外擴晶片,對80C51系列單片機而言,由於程序存儲器與數據存儲器的空間在物理空間上的各自獨立性,使得兩者的擴展方法略有不同。
  • 單片機數據存儲器RAM的擴展實例
    此時,我們可以利用單片機的擴展功能,擴展外部數據存儲器。本文引用地址:http://www.eepw.com.cn/article/170511.htm常用的外部數據存儲器有靜態RAM(Static Random Access Memory—SRAM)和動態RAM(Dynamic Random Access Memory—DRAM)兩種。
  • 設計原則:單片機硬體系統擴展外設
    每天新產品 時刻新體驗一站式電子數碼採購中心專業PCB打樣工廠,24小時加急出貨伺服器和存儲系統的超新互連解決方案多樣化的電子和電氣元件,一個單片機應用系統的硬體電路設計包含兩部分內容:一是系統擴展,即單片機內部的功能單元,如 ROM、RAM、I/O、
  • 單片機小白學步(4) 模擬電路、傳統數字電路與單片機
    如果電路複雜了,誤差會逐步累積,越來越大,最後導致計算結果完全沒有意義,而減小電路的誤差也是相當不容易的。模擬電路與數字電路、十進位與二進位於是數字電路誕生了。相較於模擬電路的不精確,數字電路就有很大優勢了。注意,數字電路是相對於模擬電路而言的,數字電路的本質也是模擬電路。通常我們所說的模擬電路,指的是除數字電路以外的電路。
  • 單片機復位電路原理是什麼 單片機復位電路有哪些?
    復位電路,顧名思義,是一種使電路恢復到起始狀態的的設備。那麼問題來了,單片機為什麼需要復位電路呢?單片機復位電路原理是什麼呢?單片機復位電路有哪些種呢?本文將一一為您解答~~~本文引用地址:http://www.eepw.com.cn/article/269787.htm一、單片機復位電路原理- -簡介復位電路,與計算機的清零按鍵類似,卻又存在不同。
  • 誰說兩者不可「兼得」:MacBook Pro 13 配合顯卡擴展塢使用體驗
    這款發布於 18 年的顯卡擴展塢似乎在那時就已經走上了「前列」的水平,它可以輕鬆地通過一根「雷電 3」的線將主機級別的顯卡連接到你的筆記本上,使你的筆記本圖形性能大增,這意味不僅在視頻剪輯中提供不錯的加速功能,也可以讓你在遊戲中「流光溢彩」。
  • 老美攻「芯」計!陸3招破解摩爾法則成最大殺手鐧
    美中科技大戰延燒,美國對大陸相關企業祭出制裁,當外界認為「中國芯」必定受到嚴重打擊美中科技大戰延燒,美國對大陸相關企業的制裁,從大陸手機巨頭華為擴展至晶圓龍頭中芯國際,當外國供應商已停止向中芯供貨,外界認為「中國芯」必定受到嚴重打擊時,大陸晶片(晶片)產業卻似乎仍有三條路可走
  • 小白必看:單片機系統電路經典設計教學
    以下介紹單片機最小系統電路設計,單片機最小系統主要由電源、復位、振蕩電路以及擴展部分組成。對於一個完整的電子設計來講,首要問題就是為整個系統提供電源供電模塊,電源模塊的穩定可靠是系統平穩運行的前提和基礎。
  • 單片機紅外電路設計原理
    當單片機的GPIO輸出高電平時PNP三極體處於截止狀態紅外發射管不工作;當GPIO輸出低電平時PNP三極體導通發射管工作,發出肉眼不可見的紅外線,被接收管接收到。遙控器上的每一個按鍵都有一定的編碼,該編碼其實就是遵循一定規則的高低電平的脈衝,接收電路解析該脈衝從而執行對應的操作。前文說過,紅外發射和紅外接收是一對,成對使用。發射管是白色的,接收管是黑色的。
  • 51單片機程序下載、ISP及串口基礎知識
    本文詳細介紹了串口、51單片機的ISP下載等基礎知識,已經學過單片機的也可以看看,加強一下對這方面的了解。 串口 串行接口簡稱串口,也稱串行通信接口,是採用串行通信方式的擴展接口。早期的AT89C51系列(89後面是字母C)單片機,下載程序時需要使用專門的燒寫器燒寫進去,單片機燒寫程序時必須從電路上取下來,非常麻煩。後來推出了支持ISP(In System Programming)在線編程的AT89S51系列單片機,只需連接幾根線即可燒寫程序,也不需取下單片機。
  • 單片機復位電路原理是腫麼樣的呢???
    導讀:復位電路,顧名思義,是一種使電路恢復到起始狀態的的設備。那麼問題來了,單片機為什麼需要復位電路呢?單片機復位電路原理是什麼呢?單片機復位電路有哪些種呢?
  • 數顯溫度計設計電路圖大全(DS18B20/89S51單片機/液晶)
    數顯溫度計設計電路圖(三):液晶顯示溫度計電路圖 如圖為液晶顯示溫度計電路圖。該電路的工作原理為:由DS18B20溫度傳感器晶片測量當前的溫度,並將結果送入單片機。然後,通過89C205I單片機晶片對送來的測量溫度讀數進行計算和轉換,將此結果送入液晶顯示模塊。最後,SMC1602A晶片將送來的值顯示於顯示屏上。
  • 單片機3種時鐘電路方案對比
    作為單片機研發設計的項目,它的最小電路工作系統包含電源電路、復位電路、時鐘頻率電路;其中電源電路與復位電路,相信工程師都非常容易理解與設計。然而時鐘頻率電路,由於不同的開發項目功能需求不一樣,設計的方案選擇也不盡相同,很難得到有效的統一設計。
  • 為什麼很多單片機的工作電壓是5v?
    所以3v3和5v一般出現在信號電路或者單片機等vcc供電,而12v/24v一般出現在低壓動力電,例如主板、顯卡、軸流風機、監控器。硬體決定系統基礎,如果鋰電池早點應用的話估計還會有3.7/7.4這個系統。 為什麼很多單片機的工作電壓是5v?
  • 專注於手機射頻晶片設計研發,「迦美信芯」定位聚焦於天線調諧 |...
    36氪近期了解到一家專注於5G手機射頻領域集成電路的研發和銷售的研發商——「上海迦美信芯通訊技術有限公司」。 「迦美信芯」成立於2008年10月23日,主要經營範圍包括面向手機終端和物聯網的2G/3G/4G/5G全系列的射頻開關、天線調諧器、低噪聲放大器,以及面嚮導航的GNSS晶片和低噪聲放大器等產品。
  • 單片機紅外線報警器電路圖
    基於單片機的紅外線報警器設計一. 硬體電路電路原理圖如圖1所示.可將該電路分為以下三個部分.
  • 朋友遇到一個電路,單片機復位就關機的問題,我這樣修改了電路
    朋友在設計電路時,遇到這樣一個問題。電路在工作時,單片機復位後,電路就斷電關機,需要重新長按鍵才能開機。但是這不是他想要的,他設計的目的是,長按按鍵開關機,單片機復位時,電路不能斷電關機。開關機電路如下所示。 分析上圖的電路工作原理。
  • 【電路DIY】自動關機電路的技術分析及改造
    發現了各種軟關機電路,就是單片機工作一會後,自動關機了。好靈性和智能哦。  先解決萬用表的問題——自動關機電路如下圖所示:  聲明下哦:電路出自於網上,不是我自己弄出來的。  來,細細分析下:  其實說白了就是——比較器+ RC定時+三極體開關  R1和C1組成RC定時網絡,Q1和Q2組成電子開關。