本應用筆記說明了如何使用微處理器的UART來實現1-Wire?總線主機。它包括所需的電接口,UART配置以及UART與1-Wire信號之間的時序關系的說明。設置UART字節時序提供的靈活性允許直接實現1-Wire時隙以及復位和在線檢測脈沖。通過包含深度發送和接收FIFO,可以在1-Wire總線上傳輸幾個字節值,而主處理器只需要每位幾個時鐘周期即可。
1-Wire器件為識別,存儲,計時,測量和控制提供了經濟的解決方案。1-Wire數據接口減小到絕對最小值,即一條數據線加上一個接地基準。由于大多數1-Wire器件提供的數據量相對較少,典型的16kbps數據速率足以滿足預期任務的需要。通常以“位敲打”的方式使用8位或16位微控制器的通用輸入/輸出(GPIO)引腳作為總線主控器很方便。
但是,在32位系統中,處理器時鐘頻率通常超過100MHz,并且使用GPIO引腳作為1-Wire總線主機時,每個1-Wire位消耗大量時鐘周期。在32位便攜式系統中,在對1-Wire讀寫時隙進行定時時會消耗寶貴的電池電量。一些系統通過在其芯片組中包含DS1WM可合成1-Wire總線主控器*硬件模塊,減輕了主處理器的位定時和字節成幀操作的負擔。如果DS1WM或其他硬件1-Wire主端口不可用,則在有通用異步接收器發送器(UART)通道可用的情況下,與1-Wire器件的通信可以輕松完成。
本應用筆記包括所需的電氣接口,UART配置以及UART與1-Wire信號之間的時序關系的說明。假定對1-Wire通信有一個一般的了解。在下面的討論中將使用典型的時序和邏輯電平,讀者應參考特定的1-Wire器件數據手冊,以了解特定的時序和電壓規格以及容差。
正確配置了波特率,每個字符的數據位,奇偶校驗和停止位的數量后,每秒115,200位的UART提供了實現1-Wire主設備所需的輸入和輸出時序。UART產生1-Wire復位脈沖以及讀和寫時隙。微處理器只需將一個字節的字符代碼放入UART發送寄存器中,以發送1-Wire 1或0位,然后UART即可完成工作。相反,微處理器讀取與從1-Wire從器件讀取的1位或0位相對應的單字節字符代碼。所有1-Wire位傳輸都需要總線主機UART來通過將1-Wire總線驅動為低電平來開始周期。因此,每個1-Wire位周期包括UART發送的字節和接收的字節。讀取時,接收到的數據是有意義的,但是寫入時,接收字節被丟棄。根據UART的讀取和寫入先進先出(FIFO)緩沖區深度,UART還可以將1-Wire位成幀為字節值,從而進一步減少了處理器開銷。
UART至1-Wire電接口
1-Wire器件在漏極開路環境下,總線電壓范圍為2.0V至5.5V。精確的邏輯電平和最小上拉電壓取決于器件,盡管通常寄生功率器件要求最小上拉電壓為2.8V,以便在數據線為低電平期間為用于供電的內部存儲電容器充電。4.7kΩ電阻通常用作1-Wire數據線上的上拉電阻。電阻器被動地提供邏輯高信號,總線主機和所有從器件驅動邏輯低信號。器件通常具有弱內部下拉電阻,如圖1的Ipd所示。
由于大多數UART發送數據(TXD)引腳都不是漏極開路的,因此通常需要一個外部漏極開路緩沖電路。該電路可以由如圖2所示的分立元件構成,也可以采用如圖3所示的FairchildNC7WZ07之類的集成解決方案。在這兩個電路中,4.7kΩ上拉電阻在1-Wire總線上提供邏輯高電平。
離散漏極開路緩沖器。
集成的漏極開路緩沖器。
編輯:hfy
-
處理器
+關注
關注
68文章
19336瀏覽量
230197 -
緩沖器
+關注
關注
6文章
1923瀏覽量
45525
發布評論請先 登錄
相關推薦
評論