用穩壓管保護微控制器引腳 簡單聊聊微控制器通訊時序分析

2021-10-12 01:27:02 字數 2957 閱讀 4090

所謂「時序」從字面意義上來理解,一是「時間問題」,二是「順序問題」。

先說「順序問題」,這個相對簡單一些。我們在學 uart 串列埠通訊的時候,先 1 位起始位,再 8 位資料位,最後 1 位停止位,這個先後順序不能錯。我們在學 1602 液晶的時候,比如寫指令,rs=l,r/w=l,d0~d7=指令碼,這三者的順序是無所謂的,但是最終的 e=高脈衝,必須是在這三條程式之後,這個順序一旦錯誤,寫的資料也可會出錯。

「時間問題」內容相對複雜。比如 uart 通訊,每一位的時間寬度是 1/baud。我們初中就學過乙個概念,世界上沒有絕對的準確。那麼每一位的時間寬度 1/baud 要求精確到什麼範圍內呢?

前邊教程我提到過,微控制器讀取 uart 的 rxd 引腳資料的時候,一位資料,微控制器平均分成了 16 份,取其中的 7、8、9 三次讀到的結果,這三次中有 2 次是高電平那這一位就是 1,有 2 次是低電平,那這一次就是 0。如果我們的波特率稍微有些偏差,只要累計下來到最後一位停止位,這 7、8、9 還在範圍內即可。如圖 13-1 所示。

圖 13-1 uart 訊號採集時序圖

我們用三個箭頭來表示 7、8、9 這三次的採集位置,大家可以注意到,當採集到 d7 的時候,已經有一次採集偏出去了,但是我們採集到的資料還是不會錯,因為有 2 次採集正確。至於這個偏差允許多大,大家自己可以詳細算一下。實際上 uart 通訊的波特率是允許一定範圍內誤差存在的,但是不能過大,否則就會採集錯誤。大家在計算波特率的時候,發現沒有整除,有小數部分的時候,就要特別小心了,因為小數部分是一概被捨掉的,於是計算誤差就產生了。我們用 11.0592m 晶振計算的過程中,11059200/12/32/9600 得到的是乙個整數,如果用 12m 晶振計算 12000000/12/32/9600 就會得到乙個小數,大家可以算一下誤差多少,是否在誤差範圍內。

1602 的時序問題,大家要學會通過 lcd1602 的資料手冊提供的時序圖和時序引數**來進行研究,而且看懂時序圖是學習微控制器所必須掌握的一項技能,如圖 13-2 所示。

圖 13-2 1602 時序圖

大家看到這種圖的時候,不要感覺害怕。說句不過分的話,微控制器這些邏輯上的問題,只要小學畢業就可以理解的,很多時候是因為大家把問題想象的太難才學不下去的。

我們先來看一下讀操作時序的 rs 引腳和 r/w 引腳,這兩個引腳先進行變化,因為是讀操作,所以 r/w 引腳首先要置為高電平,而不管它原來是什麼。讀指令還是讀資料,都是讀操作,而且都有可能,所以 rs 引腳既有可能是置為高電平,也有可能是置為低電平,大家注意圖上的畫法。而 rs 和 r/w 變化了經過 tsp1 這麼長時間後,使能引腳 e 才能從低電平到高電平發生變化。

而使能引腳 e 拉高經過了 td 這麼長時間後,lcd1602 輸出 db 的資料就是有效資料了,我們就可以來讀取 db 的資料了。讀完了之後,我們要先把使能 e 拉低,經過一段時間後 rs、r/w 和 db 才可以變化繼續為下一次讀寫做準備了。

而寫操作時序和讀操作時序的差別,就是寫操作時序中,db 的改變是由微控制器來完成的,因此要放到使能引腳 e 的變化之前進行操作,其它區別大家可以自行對比一下。

細心的同學會發現,這個時序圖上還有很多時間標籤。比如 e 的上公升時間 tr,下降時間時間 tf,使能引腳 e 從乙個上公升沿到下乙個上公升沿之間的長度週期 tc,使能 e 下降沿后,r/w 和 rs 變化時間間隔 thd1 等等很多時間要求,這些要求怎麼看呢?放心,只要是正規的資料手冊,都會把這些時間要求給大家標記出來的。我們來看一下表 13-1。

大家要善於把手冊中的這個**和時序圖結合起來看。表 13-1 中的資料,都是時序引數,本節課的所有時序引數,我都一點點的給大家講出來,以後遇到同類時序圖,就不再講了,只是提一下,但是大家務必要學會自己看時序圖,這個很重要,此外,看以下解釋需要結合圖 13-2 來看。

tc:指的是使能引腳 e 從本次上公升沿到下次上公升沿的最短時間是 400ns,而我們微控制器因為速度較慢,乙個機器週期就是 1us 多,而一條 c 語言指令肯定是乙個或者幾個機器週期的,所以這個條件完全滿足。

tpw:指的是使能引腳 e 高電平的持續時間最短是 150ns,同樣由於我們的微控制器比較慢,這個條件也完全滿足。

tr, tf:指的是使能引腳 e 的上公升沿時間和下降沿時間,不能超過 25ns,別看這個數很小,其實這個時間限值是很寬裕的,我們實際用示波器測了一下開發板的這個引腳上公升沿和下降沿時間大概是 10ns 到 15ns 之間,完全滿足。

tsp1:指的是 rs 和 r/w 引腳使能後至少保持 30ns,使能引腳 e 才可以變成高電平,這個條件同樣也完全滿足。

thd1:指的是使能引腳 e 變成低電平後,至少保持 10ns 之後,rs 和 r/w 才能進行變化,這個條件也完全滿足。

td:指的是使能引腳 e 變成高電平後,最多 100ns 後,1602 就把資料送出來了,那麼我們就可以正常去讀取狀態或者資料了。

thd2:指的是讀操作過程中,使能引腳 e 變成低電平後,至少保持 20ns,db 資料匯流排才可以進行變化,這個條件也完全滿足。

tsp2:指的是 db 資料匯流排準備好後,至少保持 40ns,使能引腳 e 才可以從低到高進行使能變化,這個條件也完全滿足。

thd2:指的是寫操作過程中,要引腳 e 變成低電平後,至少保持 10ns,db 資料匯流排才可以變化,這個條件也完全滿足。

好了,表 13-1 這個 lcd1602 的時序參數列已經解析完成了,看完之後,是不是感覺比你想象的要簡單,沒有你想的那麼困難。大家自己也得慢慢學會看這種時序圖和**,在今後的學習中,這方面的能力尤為重要。如果以後換用了其它型號的微控制器,那麼就根據微控制器的執行速度來評估你的程式是否滿足時序要求,整體上來說器件都是有乙個最快速度的限制,而沒有最慢限制,所以當換用高速的微控制器後通常都是靠在各步驟間插入軟體延時來滿足較慢的時序要求。

PIC微控制器引腳

微控制器的訊號引腳是微控制器外特性的體現,在硬體上使用者只能使用引腳,通過引腳的連線組建微控制器系統。pic 8位微控制器系列和mcs 51系列微控制器一樣,其引腳除電源 vdd vss為單一功能外,其餘的訊號引腳常是多個功能,即引腳的復用功能。常見的引腳符號和主要功能如下 1 clr vpp 清除...

51微控制器的復位引腳 51微控制器引腳功能介紹

40只引腳雙列直插封裝 dip 40只引腳按功能分為3類 1 電源及時鐘引腳 vcc vss xtal1 xtal2。2 控制引腳 psen ea ale reset 即rst 3 i o口引腳 p0 p1 p2 p3,為4個8位i o口的外部引腳。2.2.1 電源及時鐘引腳 1.電源引腳 1 vc...

51微控制器控制引腳

一般情況下,微控制器的引腳當中,除了電源引腳和晶振引腳,其它的都是io口。當我們控制微控制器的引腳高低時,我們把引腳當做輸出引腳 當我們需要檢測連線到微控制器引腳上的電平時,我們把引腳當做輸入引腳使用。使引腳p1.5輸出高電平,可以這樣寫 p1 0x20 或者 sbit p1 5 1 第一種寫法,在...