1 i/o作為輸出時要注意的問題
<1> 接收訊號時片外外設可能沒有輸入鎖存器,因此嵌入式微處理器輸出訊號在下次再寫入新資料前應一直保持不變。輸出置數指令執行時間小於1微秒,而外設動作保持時間可能幾分鐘甚至幾小時不變。因此,輸出資料要有鎖存器,儲存瞬時寫入的資料。
<2> 輸出埠要有一定的驅動能力。i/o外負載情況有兩種:動態驅動和靜態驅動。動態驅動如i/o作為資料匯流排使用時,在指令控制下i/o是很短時間內輸出資料,脈衝寬度一般小於1微秒。i/o由特定動態的mos作為負載,一般可以驅動4到8個ttl電路。靜態驅動是指i/o埠長時間處於同一種狀態(0或者1),只有驅動訊號改變時i/o埠狀態才改變,這時驅動的一般只有乙個ttl電路。
2、就驅動能力來說應該注意下面兩個問題:
<1> 驅動時使用高電平驅動還是使用低電平拉入電流驅動。當為高電平驅動時,一般通用的i/o埠的最大驅動電流不能超過4到5毫安,而低電平拉入電流一般比較大,最大可以達到25毫安。
<2> 電阻性負載還是電容性負載。對於電容性負載,當高頻驅動時由於有電容的存在,使i/o驅動電路負載加重,這樣會損壞i/o埠,同時使i/o埠輸出電平降低。一般i/o電容負載不得大於50皮法。大於50皮法的應該加緩衝器,緩衝器可以用反門、電晶體、d觸發器、rs觸發器等。也可以在i/o埠串聯乙個小於50歐姆的電阻,減小因電容引起的對i/o埠的瞬時衝擊。如果使電阻性負載,主要考慮驅動電流是否適合。
3、使用者把微處理器i/o定義為輸入埠,但是在製造晶元時為了靈活使用該埠,也允許其作為輸出埠,片內輸出鎖存器、資料暫存器對使用者定義為輸入口肯定會有影響。目前半導體製作上解決已有的輸出硬體結構與定義輸入口之間相互影響的辦法有兩個:
<1> 輸出資料暫存器與引腳連線要控制,例如加入乙個可控制的三態輸出門連線到引腳。也就是說,使用者定義該埠為輸入口,還要定義輸出資料暫存器不與引腳連線,從而不影響輸入狀態。
<2> 硬體結構已經把輸出資料暫存器永遠與引腳通過邏輯電路連線起來,這時如果該埠定義為輸入口,事先應在輸出資料暫存器置1。由於這時引腳狀態是輸出資料暫存器與射入埠的狀態線相「與」的結果,因此也不會影響輸入狀態。
4、當輸入埠是計數器捕捉暫存器輸入、正交編碼電路輸入時,對於輸入的最小脈衝寬度有一定的要求。脈衝過窄會使計數器無法正常工作。最小脈衝寬度對於不同的微處理器不同的主頻有不同的要求,一般脈衝大於1微秒就可以正常工作了。
5、在某乙個瞬時,可能有兩個i/o輸出,並且片外外設輸出1,微處理器i/o輸出0,這樣可能使微處理器i/o瞬時過載,損壞i/o埠。這時最好在兩個引腳之間串聯乙個大於100歐姆的電阻(100k歐以內)以限制瞬時電流。由於該電阻在cpu的i/o輸出時是低阻抗,而在片外外設輸入時是高阻抗,所以無影響。相反也一樣。
嵌入式術語解釋 常見嵌入式作業系統種類
嵌入式術語解釋 gun gun是gun is not unix 的遞迴縮寫。gun是乙個自由軟體作業系統,是乙個類unix作業系統。由多個應用程式 系統庫 開發工具乃至遊戲構成的程式集合。gpl general public license gun通用性公開許可證 gdb gun debugger ...
嵌入式系統中的FPGA
fpga 可以實現高速硬體電路,如各種時鐘,pwm,高速介面,dsp計算等硬體功能。這是cortex m 處理器軟體無法比擬的。要實現fpga 的邏輯設計,對於嵌入式系統工程師又是比較複雜和具有一定難度。而且要更改fpga內部的邏輯也不是十分靈活。本文 一種在嵌入式系統中,靈活,方便地動態配置fpg...
嵌入式 檔案IO的學習
用 實現linux中cp複製的功能 include stdio.h include unistd.h include fcntl.h include string.h intmain int argc,char ar int argc是記錄你在命令列敲入的字串個數,char ar 是存放你寫入是字串...