加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 串轉(zhuǎn)并芯片
    • 專用 IO 擴(kuò)展芯片
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

【電路設(shè)計(jì)筆記】5.對(duì)單片機(jī)IO口擴(kuò)展的幾種方案討論

09/22 14:37
6.7萬
閱讀需 9 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

前兩天,開始我們樂創(chuàng)客第一塊開發(fā)板的設(shè)計(jì),當(dāng)我在進(jìn)行電路設(shè)計(jì)時(shí),我發(fā)現(xiàn)一些電路設(shè)計(jì)軟件的使用,一些電路設(shè)計(jì)的方案,一些創(chuàng)新的想法,一些元器件的選型這些都是可以記錄成文,并且分享出來一起討論的。因此從本節(jié)文字開始,正式開啟電路【電路設(shè)計(jì)筆記】的更新。當(dāng)然,這里的部分電路是我用了非常多年的成熟電路,一些電路是我臨時(shí)創(chuàng)新想出的未經(jīng)過驗(yàn)證的電路,這些沒有被驗(yàn)證的電路我會(huì)指出來,大家閱讀時(shí)如果發(fā)現(xiàn)有問題也希望不吝指出。

世界上最尷尬的事情是什么?這個(gè)我真不知道。但是做電子系統(tǒng)時(shí)最尷尬的事莫過于想要增加一個(gè)新的功能卻發(fā)現(xiàn)單片機(jī)引腳不夠。

在我們?nèi)粘5碾娐吩O(shè)計(jì)時(shí),除了最基本的產(chǎn)品需求要滿足之外,還需要考慮的就是整個(gè)電路設(shè)計(jì)的成本,在很多公司中,成熟產(chǎn)品的 cost down(成本降低)也基本上是個(gè)日常日程。產(chǎn)品成本的 cost down 比起供應(yīng)鏈端哥們的努力,設(shè)計(jì)源頭的 cost down 顯然更加直接簡單。一個(gè)好的電子工程師并不是能設(shè)計(jì)出多么復(fù)雜穩(wěn)定的電路,而是可以利用最簡單最便宜的方案來滿足復(fù)雜的產(chǎn)品設(shè)計(jì)要求。

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

單片機(jī)的 IO 口擴(kuò)展一般有以下三種方案。

串轉(zhuǎn)并芯片

串轉(zhuǎn)并芯片來擴(kuò)展單片機(jī)的 IO 可能是成本最低的 IO 擴(kuò)展解決方案,而且對(duì)于單片機(jī)來說可以犧牲最少的端口來獲得最多的端口擴(kuò)展收益。串轉(zhuǎn)并方案所利用的芯片就是我們?nèi)粘K^的“移位寄存器”芯片。由于移位寄存器是一種單向器件,因此需要利用只能做串行數(shù)據(jù)轉(zhuǎn)并行數(shù)據(jù)的移位輸出寄存器芯片和只能做并行數(shù)據(jù)轉(zhuǎn)串行數(shù)據(jù)的移位輸入寄存器芯片來完成這個(gè)單片機(jī) IO 口的雙向傳輸方案。

首先來討論單片機(jī)輸出口的擴(kuò)展方案。單片機(jī)輸出口擴(kuò)展需要利用串行數(shù)據(jù)轉(zhuǎn)并行數(shù)據(jù)的移位寄存器芯片,最常用的芯片是 74HC595。

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

圖中紅色框選出的是移位寄存器單元,這個(gè)單元的功能為 SER 引腳上的數(shù)據(jù)會(huì)在每個(gè) SCK 上升沿到來時(shí)被移位進(jìn)入移位寄存器。

圖中藍(lán)色部分框選出的是數(shù)據(jù)暫存器單元,其實(shí)這里就是 8 個(gè)并聯(lián)的 D 觸發(fā)器,這 8 個(gè) D 觸發(fā)器的輸出分別和其對(duì)應(yīng)的前級(jí)移位寄存器輸出端相連,在每個(gè) RCK 上升沿到來時(shí)就將數(shù)據(jù)鎖存住。

圖中黃色框選出的是輸出門控電路,這是 8 個(gè)三態(tài)門組成的電路,當(dāng) G 非為低電平時(shí),三態(tài)門被開啟,輸出有效,反之芯片輸出為高阻狀態(tài)。

最后一個(gè) Q’H 引腳,是將串行數(shù)據(jù)輸出的,比如當(dāng) SCK 第 8 個(gè)脈沖到來時(shí),8 個(gè)移位寄存器正好可以存儲(chǔ)一個(gè)字節(jié)的數(shù)據(jù),但是當(dāng)?shù)?9 個(gè)脈沖到來時(shí),最先來的那個(gè) SER 上的數(shù)據(jù)會(huì)被最晚到來的第 9 個(gè)脈沖頂出來,頂出來的那一位數(shù)據(jù)就會(huì)出現(xiàn)在 Q’H 引腳上面,這個(gè)引腳的主要目的是用來做 74HC595 芯片擴(kuò)展的。

 

接著來討論單片機(jī)輸入口的擴(kuò)展方案。單片機(jī)輸入口擴(kuò)展需要利用并行數(shù)據(jù)轉(zhuǎn)串行數(shù)據(jù)的移位寄存器芯片,最常用的芯片是 74HC165。

74HC165 是 8 位并行讀取或串行輸入移位寄存器,可在末級(jí)得到互補(bǔ)的串行輸出(Q7 和!Q7),當(dāng)異步并行讀取引腳(!PL)輸入為低時(shí),從 D0 到 D7 口輸入的并行數(shù)據(jù)將被讀取進(jìn)寄存器內(nèi)。而當(dāng)異步并行讀取引腳為高時(shí),數(shù)據(jù)將在每個(gè)時(shí)鐘脈沖的上升沿從 引腳串行進(jìn)入寄存器并將現(xiàn)有數(shù)據(jù)右移一位( 以此類推)。利用這種特性,只要把 Q7 輸出綁定到下一級(jí)的輸入,即可實(shí)現(xiàn)移位寄存器位數(shù)的擴(kuò)展。

74HC165 的時(shí)鐘輸入是一個(gè)“門控與”結(jié)構(gòu),CP(時(shí)鐘脈沖)和 CE(時(shí)鐘允許)共同產(chǎn)生有效時(shí)鐘輸入。只有在 CE(時(shí)鐘允許)為低時(shí),CP(時(shí)鐘脈沖)才有效。

應(yīng)當(dāng)注意的是,在 PL 上升沿到來前,CP 或者 CE 必須置高,以防止數(shù)據(jù)在 PL 的狀態(tài)尚未穩(wěn)定時(shí)發(fā)生移位。

以上就是關(guān)于移位寄存器用來擴(kuò)展單片機(jī) IO 口的,但是移位寄存器擴(kuò)展出來的單片機(jī) IO 口只能用作一些低速設(shè)備的驅(qū)動(dòng)擴(kuò)展,如按鍵,LED 等,無法去驅(qū)動(dòng)一些高速的設(shè)備,因?yàn)榇袛?shù)據(jù)轉(zhuǎn)并行數(shù)據(jù)都是通過循環(huán)一位一位地移出來的,因此速度都是有限的。

專用 IO 擴(kuò)展芯片

專用的 IO 擴(kuò)展芯片很多,這里以 NXP 的 PCF8574 為例。

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

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

•工作電源電壓 2.5 至 6 V

•待機(jī)電流消耗低,最大 10µA

•I2C 到并行端口擴(kuò)展器

•漏極開路中斷輸出

•I2C 總線的 8 位并行 I/O 端口

•兼容大多數(shù)微控制器

•鎖定輸出,具有高電流驅(qū)動(dòng)能力,可直接驅(qū)動(dòng) LED

•通過 3 個(gè)硬件地址引腳尋址,最多可使用 8 個(gè)設(shè)備(PCF8574A 最多可使用 16 個(gè))

DIP16 或節(jié)省空間的 SO16 或 SSOP20 封裝。

說到專用的 IO 擴(kuò)展芯片,其大致功能和移位寄存器相似,細(xì)節(jié)上還是有很多不同,當(dāng)然專用的 IO 擴(kuò)展芯片功能更加強(qiáng)大,比如 PCF8574 的 IO 口能同時(shí)支持輸入輸出功能。這些細(xì)致的功能用起來雖然更加順手,方便,但是跟其昂貴的售價(jià)比起來,這些功能顯然性價(jià)比太低。

以上就是兩種單片機(jī) IO 口擴(kuò)展的方案,孰優(yōu)孰劣,一目了然。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜