天天看點

FIFO、UART、ALE解釋

FIFO存儲器 FIFO是英文First In First Out 的縮寫,是一種先進先出的資料緩存器。

  它與普通存儲器的差別是沒有外部讀寫位址線,這樣使用起來非常簡單,但缺點就是隻能順序寫入資料,順序的讀出資料,其資料位址由内部讀寫指針自動加1完成,不能像普通存儲器那樣可以由位址線決定讀取或寫入某個指定的位址。

  在系統設計中,以增加資料傳輸率、處理大量資料流、比對具有不同傳輸率的系統為目的而廣泛使用FIFO存儲器,進而提高了系統性能。FIFO存儲器是一個先入先出的雙口緩沖器,即第一個進入其内的資料第一個被移出,其中一個存儲器的輸入口,另一個口是存儲器的輸出口。對于單片FIFO來說,主要有兩種結構:觸發導向結構和零導向傳輸結構。觸發導向傳輸結構的FIFO是由寄存器陣列構成的,零導向傳輸結構的FIFO是由具有讀和寫位址指針的雙口RAM構成

UART是一種通用串行資料總線,用于異步通信。該總線雙向通信,可以實作全雙工傳輸和接收。

  在嵌入式設計中,UART用來與PC進行通信,包括與監控調試器和其它器件,如EEPROM通信。

  UART通信,UART首先将接收到的并行資料轉換成串行資料來傳輸。消息幀從一個低位起始位開始,後面是7個或8個資料位,一個可用的奇偶位和一個或幾個高位停止位。接收器發現開始位時它就知道資料準備發送,并嘗試與發送器時鐘頻率同步。如果選擇了奇偶,UART就在資料位後面加上奇偶位。奇偶位可用來幫助錯誤校驗。 在接收過程中,UART從消息幀中去掉起始位和結束位,對進來的位元組進行奇偶校驗,并将資料位元組從串行轉換成并行。UART也産生額外的信号來訓示發送和接收的狀态。

  例如,如果産生一個奇偶錯誤,UART就置位奇偶标志。 資料方向和通信速度 資料傳輸可以首先從最低有效位(LSB)開始。然而,有些UART允許靈活選擇先發送最低有效位或最高有效位(MSB)。

  微控制器中的UART傳送資料的速度範圍為每秒幾百位到1.5Mb。例如,嵌入在ElanSC520微控制器中的高速UART通信的速度可以高達1.1152Mbps。UART波特率還受發送和接收線對距離(線長度)的影響。

  目前,市場上有隻支援異步通信和同時支援異步與同步通信的兩種硬體可用于UART。前者就是UART名字本身的含義,在摩托羅拉微控制器中被稱為串行通信接口(SCI);Microchip微控制器中的通用同步異步收發器(USART)和在富士通微控制器中的UART是後者的兩個典型例子。

ALE為Address lock enable的英文縮寫,意思為“位址鎖存使能端”。

  MCS-51單片機的ALE為位址鎖存信号,每個機器周期輸出兩個正脈沖。在通路片外存儲器時,下降沿用于控制外接的位址鎖存器鎖存從P0口輸出的低8位位址。在沒有接外部存儲器時,可以将該引腳的輸出作為時鐘信号使用。

  也可作通路外部存儲器用的,比如RAM、ROM。

  MCS-51單片機有外部總線,16位的位址線,8為的資料線,但是位址的低8位跟資料線是重合的,是以通路的時候需要區分開低8位(P0口,高8位是P2口)位址和資料,這就需要用到ALE信号了。

  通路存儲器的時候,P2口輸出高位址,P0輸出低位址。利用外部的鎖存器(一般用74LS373)配合ALE脈沖,鎖存P0位址,這時候讀寫信号開始起作用(WR或者RD),P0口讀入或者輸出資料。在整個過程中,外部存儲器的位址總線上的資料始終是穩定的,低8位位址的穩定靠的就是ALE和外部鎖存器。

  現在的51一般都很少用外部存儲器或者相似的使用外部總線的外設可,是以現在的51單片機大多數都可以軟體設定ALE脈沖的使能,由使用者決定是否輸出ALE脈沖,一來是降低EMI,二來是可以多一個IO口(如果ALE是複用的話)。

我的GitHub位址:

https://github.com/heizemingjun

我的部落格園位址:

http://www.cnblogs.com/chenmingjun

我的螞蟻筆記部落格位址:

http://blog.leanote.com/chenmingjun

Copyright ©2018 黑澤明軍

【轉載文章務必保留出處和署名,謝謝!】