基于ARM 7 的S3C44B0X 與多路模擬器控制板通訊接口設(shè)計(jì)與實(shí)現(xiàn)
S3C44B0X 中所包含的兩個(gè)串口TxD0 ,RxD0,TxD1,RxD1 均可以中斷模式或DMA 模式工作。發(fā)送/接收數(shù)據(jù)幀都是可編程的,一個(gè)數(shù)據(jù)幀包含一個(gè)起始位,5 到8 個(gè)數(shù)據(jù)位,一個(gè)可選的奇偶校驗(yàn)位和1 到2 個(gè)停止位,這些均通過線性控制寄存器ULCONn 控制。發(fā)送器還可產(chǎn)生中止條件,它保證連續(xù)輸出一幀時(shí)間的邏輯0 信號(hào),信號(hào)必須在傳輸完當(dāng)前傳輸字的情況下進(jìn)行。
接收的數(shù)據(jù)幀式與發(fā)送數(shù)據(jù)幀式相同,接收器還可以檢測(cè)到溢出錯(cuò)誤,奇偶校驗(yàn)錯(cuò)誤,幀錯(cuò)誤和中止?fàn)顩r,每種情況下都會(huì)將一個(gè)錯(cuò)誤標(biāo)志置位。
3 多路控制板通訊接口設(shè)計(jì)
3.1 多路模擬器控制板通訊結(jié)構(gòu)
模擬器各從模擬控制板與模擬器主控制器S3C44B0X 之間通訊采用 RS-485 電平, 當(dāng)S3C44B0X 處于工作狀態(tài)后,依照給定的時(shí)間間隔,把計(jì)算得到的控制信息通過串口向處于485總線上的各從模擬控制板發(fā)送控制電文,各從模擬控制板在RS-485 總線上則時(shí)刻處于監(jiān)聽狀態(tài),收到相應(yīng)信息后則在設(shè)定的總線空閑時(shí)機(jī),向主控制器回復(fù)當(dāng)前執(zhí)行狀況,各從模擬控制板之間,也可以依托主控制器,即采用從-主-從的方式,實(shí)現(xiàn)相互之間的數(shù)據(jù)交互或狀態(tài)查詢。
3.2 模擬器通訊控制電文設(shè)計(jì)
各個(gè)從模擬控制板接收主控制器發(fā)送的控制電文并解析,必須首先明確其每幀結(jié)構(gòu),然后才能根據(jù)其結(jié)構(gòu)完成對(duì)各相關(guān)信息的提取。目前的信息傳遞幀格式定義的方法有:可見字符編碼,內(nèi)部讀取互不兼容的二進(jìn)制格以及混合編碼方式等。對(duì)于本文所使用的主從通訊結(jié)構(gòu),為方便調(diào)試和外部監(jiān)視讀取,相互間采用可見的ASCII 碼接口協(xié)議發(fā)送。發(fā)送出的數(shù)據(jù)主要由幀頭、幀尾和幀內(nèi)數(shù)據(jù)組成。
從模擬控制板在處理時(shí)一般先通過對(duì)幀頭的判斷而識(shí)別后續(xù)數(shù)據(jù)內(nèi)容,進(jìn)行數(shù)據(jù)的提取處理。
由于數(shù)據(jù)幀內(nèi)各數(shù)據(jù)段由逗號(hào)分割,因此在處理緩存數(shù)據(jù)時(shí)一般是通過搜尋ASCII 碼“$”來判斷是否是幀頭,對(duì)幀頭的類別進(jìn)行識(shí)別后再通過讀取設(shè)備類型,判斷正在接收的是否為該從模擬控制板的相關(guān)信息,再通過對(duì)所經(jīng)歷逗號(hào)個(gè)數(shù)的計(jì)數(shù)或字符數(shù)據(jù)長度來判斷出當(dāng)前正在處理的是哪一種控制參數(shù),并做出相應(yīng)處理。
4 結(jié)束語
整個(gè)系統(tǒng)硬件設(shè)計(jì)方面運(yùn)用了資源豐富,速度快且低功耗的ARM 嵌入式處理器,并提供了與多個(gè)從模擬控制板連接的串口總線通訊解決方案。采用ARM 內(nèi)核可以使系統(tǒng)小型化,并極大的提升了系統(tǒng)性能。在實(shí)際應(yīng)用中多路控制板易于擴(kuò)展,從總線提取的控制電文信息也可方便與各種外設(shè)連接和調(diào)試,使其便于實(shí)現(xiàn)更高層次的功能和應(yīng)用,具有較好的應(yīng)用推廣價(jià)值。
評(píng)論