在電子產品開發選擇單片機之前,我們先大致畫一個框圖,整理出整個系統所需的所有各種功能。將框圖作為電子產品開發預設計的一部分,這樣可以在開始設計實際原理圖之前布局項目。
在單片機開發是有多個問題需要明確:什么需要連接到單片機?他們需要什么通信協議?需要多少個通用輸入/輸出(GPIO)引腳?需要多少個通信端口?
在選擇單片機之前,需要這些信息。實際上可用的單片機單片機有很多,如果不想選擇一款性能或功能過剩的單片機,這些前期的問題可以幫助你減少不必要工作量或預算。
另一方面,單片機開發人員也不希望用太有限的單片機來限制自己。你可能希望在未來添加新的產品功能,因此你需要一個合適的單片機,以便在必要時為你提供一點成長空間。
所以,我們需要更詳細地了解單片機上一些最常見的功能和外設:
一、內存類型
RAM和FLASH存儲器已內置于大多數單片機中。RAM內存用于臨時數據存儲。RAM被認為是易失性存儲器,因為一旦電源關閉它就會丟失其內容。FLASH是非易失性存儲器。即使關閉電源,它仍會保留其內容。FLASH主要用于存儲程序(稱為固件)。
EEPROM(電可擦除只讀存儲器)也是非易失性存儲器,但它通常用于存儲少量數據,例如配置和可變狀態。EEPROM的優點是允許按字節擦除,而閃存僅允許擦除整個字節塊或頁面。
二、數字輸入/輸出(GPIO)
單片機上的數字輸入和輸出稱為通用輸入輸出或GPIO。GPIO引腳是用于輸入或輸出的邏輯電平引腳(高或低)。它們通??梢则寗痈哌_幾十毫安的負載,但通常需要使用某種外部驅動電路來減輕驅動要求。此外,加在一起的所有引腳必須低于允許的最大總電流。
在決定使用哪些引腳時,請務必查閱單片機規格書,因為某些引腳上不提供許多內部功能。你還必須遵守特定的映射限制,映射意味著設置哪些引腳服務哪些功能。單片機上的大多數引腳具有多種可能的功能,可為硬件設計人員提供最大的靈活性。
三、模擬輸入和輸出
除了數字I/O,大多數單片機還可以精確測量模擬電壓,有些還具有輸出精確模擬電壓的能力。模擬電壓由單片機使用稱為模數轉換器(ADC)的嵌入式專用電路進行測量。
從單片機輸出模擬電壓有兩種方法。最精確但更復雜的方法是使用數模轉換器(DAC)電路。有許多單片機包含用于此目的的內置DAC,但許多單片機沒有。大多數單片機上可用的第二種方法是使用脈寬調制(PWM)發生器。PWM是一種在高電平和低電平之間振蕩的數字信號。單片機能夠控制由固件程序確定的該信號高的時間百分比。PWM信號然后可以通過一個低通濾波器將其轉換為模擬電壓,通過控制PWM信號高與低的時間百分比,你可以準確地控制濾波器輸出側的模擬電壓電平。
四、通用異步接收器發送器(UART)
今天仍在單片機中使用的最古老的串行通信方法稱為UART,UART自1970年代初就已存在。顧名思義,UART是一種異步協議,意味著沒有時鐘信號來同步信號時序。UART的最簡單形式僅使用兩條信號線:接收(RX)和發送(TX)。
同步通信支持更快的數據傳輸速率。異步通信必須向數據添加同步位。發送這些額外的同步位會增加開銷,因此會降低有效的數據傳輸速率。同步通信的缺點是它需要額外的時鐘信號線。它還需要主/從配置,因為主設備必須是生成時鐘信號的設備。
UART通常與其他標準(例如RS-232或RS-485)結合使用,以實現更遠距離的外部串行通信。一些單片機上也提供稱為USART的同步UART。
五、串行外設接口(SPI)
SPI是一種同步通信協議。它通常比UART或I2C接口快得多。SPI是一種全雙工通信標準,這意味著它可以同時發送和接收數據。與UART一樣,SPI僅用于短距離通信,這在大多數情況下意味著同一PCB上的芯片之間。
SPI由4條線組成,或者實際上是3條線加上每個外圍設備的一條線。SPI信號是MISO(主入從出)和MOSI(主出從入)、SCLK(串行時鐘)和SS(從選擇)??梢詫⒍鄠€外圍設備連接到單片機的SPI端口,但一次只能選擇一個設備。SPI的主要優點是它的數據傳輸速度更快。SPI的主要缺點是需要4條信號線,而UART和I2C只需要2條信號線。
六、內部集成電路(I2C)
I2C是一種同步串行總線協議,用于同一板上組件之間的串行通信。I2C的主要優點是它只需要兩根線,是同步的,并且與UART或SPI不同,I2C是一種總線協議。
成為真正的總線意味著I2C允許多個設備連接到相同的兩條線。I2C為每個設備使用唯一的地址,而不是像SPI那樣使用從設備選擇信號。這一事實極大地簡化了板載信號路由。
與SPI一樣,I2C使用時鐘信號來同步通信。但是,與SPI不同的是,I2C只是半雙工,因此它對數據輸入和數據輸出使用單個信號。I2C不能同時在兩個方向發送數據。這種簡單性的代價是I2C比SPI慢得多。因此I2C主要用于連接不需要高數據傳輸速度的兩個組件。它特別適用于連接傳感器(相對較慢)。
七、通用串行總線(USB)
USB這種串行通信協議用的很多,USB是大多數單片機上可用的最快的串行通信協議,它通常用于在外設之間傳輸大量數據。