Pages

CAN BUS - 通訊距離與通訊波特率的關係

波特率(Kbps)1000500250125100502010
最大距離(m)40130270530620130033006700
在現場使用中,通訊距離與理論值有較大差距。在具體的使用中應該進行測試驗證。
從 Evernote 傳送記事

CAN BUS - 特色與應用實例

智慧型網路設備 CAN BUS特色與應用實例 

由於汽車產業不斷追求安全可靠 、極致性能、 舒適方便 以及低成本等需求 ,而汽車內高複雜的系統網路,使得線束過於龐大,導致成本提高且網路架構也難以持續提升。
於是德國 Bosch在 1985年提出 CAN BUS(Controller Area Network),不但解決車內線束持續增加的問題,還為日後可靠且有效率的網路系統墊定了基礎。 1993年更制定為標準化 (ISO-11898) ,由於具有高可靠性和錯誤檢測能力,也被廣泛應用在船舶、航空電子、大眾交通 、 農用設備、醫療設備 、 工業控制等等。

自成一格的標準化設定

CAN BUS 的架構與特色 CAN BUS 是一種串列雙線式差動傳輸的技術規格 (圖 1) , MCU( Machine Control Unit ) 負責運算資料,經由 CAN Controller處理運算後的資料並傳送位元「 0」或「 1」,透過 CAN Transceiver的轉換由 CAN High和 CAN Low產生差動訊號 (圖 2),其中 CAN High電壓減 CAN Low電壓小於 0.5V代表邏輯狀態為「 1」,而 CAN High電壓減 CAN Low電壓大於 0.9V代表邏輯狀態為「 0」,所以圖 2中傳送位元串為 101。藉由差動的方式可以避免雜訊的產生,而終端電阻 120歐姆則是防止訊息傳送後反射造成的干擾。

Content Type 大全

.* = application/octet-stream
.001 = application/x-001
.301 = application/x-301
.323 = text/h323
.906 = application/x-906
.907 = drawing/907
.a11 = application/x-a11
.acp = audio/x-mei-aac
.ai = application/postscript
.aif = audio/aiff
.aifc = audio/aiff
.aiff = audio/aiff
.anv = application/x-anv

常用的HTTP回應碼

HTTP是一種請求/回應(request/response)的傳輸協定。客戶端應用程式要求一份文件,伺服端就會傳回狀態碼(status code)。
客戶端的要求至少須包括一個要求方法(request method),一個用來分辨資源的URI(Uniform Resource Identifier)及HTTP協定的版本。此外,客戶端也可以將客戶端應用程式的相關資訊,要求修飾子(requestmodifier),甚至資料本身包含到request中。
最新的HTTP定義的要求型態包括OPTIONS, GET, HEAD, POST , PUT, DELETE, TRACE。
GET方法用來擷取由URI所確認的資訊,並將其傳回到客戶端,我們可將一些標頭(header)包含進來,以適當地修改GET方法。
HEAD與GET方法類似,主要差別在於使用HEAD時,伺服端是不會傳回訊息給客戶端的。

狀態碼220-299:用來代表要求的順利完成(也有可能是部份完成)。
狀態碼300-399:用來表示某種型態的轉客(redirection)。
狀態碼400-499:用來代表要求錯誤,如文件無法找到或存取等。
狀態碼超過500:代表伺服器的錯誤。

常用轉移字符表

常用轉移字符表
轉 移 字 符
     
ASCII碼(16進制數)
\0
空字符(NULL
00H
\n
換行符(LF
0AH
\r
回車符(CR
0DH
\t
水平製表符(HT
09H
\b
退格符(BS
08H
\f
換頁符(FF
0CH
\』
單引號
27H
\」
雙引號
22H
\\
反斜槓
5CH

從 Evernote 傳送記事

關於嵌入開發中ARM的C代碼優化


C數據類型
1. C語言的程序優化與編譯器和硬件系統都有關係,設置某些編譯器選項是最直接最簡單的優化方式。在默認的情況下,armcc是全部優化功能有效的,而GNU編譯器的默認狀態下優化都是關閉的。ARM C編譯器中定義的char類型是8位無符號的,有別於一般流行的編譯器默認的char是8位有符號的。所以循環中用char變量和條件 i ≧ 0時,就會出現死循環。為此,可以用fsigned - char(for gcc)或者-zc(for armcc)把char改成signed。
其他的變量類型如下:
char 無符號8位字節數據
short 有符號16位半字節數據
int 有符號32位字數據
long 有符號32位字數據
long long 有符號64位雙字數據 

KEIL MDK 查看代碼量、RAM使用情況

KEIL RVMDK編譯後的信息
Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116 

Code
代碼佔用的空間。
RO-data
只讀常量的大小,如const。
RW-data(Read Write)
初始化了的可讀寫變量的大小。
ZI-data(Zero Initialize)
沒有初始化的可讀寫變量的大小。ZI-data不會被算做代碼裡因為不會被初始化。
※大小皆為Byte

燒寫的時候是FLASH中的被佔用的空間為:Code+RO-data+RW-data
程序運行的時候,芯片內部RAM使用的空間為: RW-data + ZI-data

資料來源:
http://blog.csdn.net/gasbi/article/details/6186312
從 Evernote 傳送記事