lzbus的前世今生

2021-06-07 07:02:36 字數 1153 閱讀 5975

現在的工業匯流排中,rs485匯流排使用得十分普遍。rs485匯流排使用一對雙絞線實現一主多從的半雙工傳輸模式。但人們將這套匯流排應用在系統中時,會發現其攜帶的負載並不是理想的那麼多,傳輸距離也不盡人意;最讓人光火的是這套匯流排並不支援星形連線,且rs485的轉換晶元經常會莫明的損壞。

在可燃氣體報警控制器中,資料通訊量大,掛接的負載較多,匯流排上電流也很大,我們公司原先使用兩根資料線,兩根電源線,其中匯流排中各裝置的地電壓差不超過3v,系統即可正常工作,但所帶的負載較少,一般超過100個就不太穩定了。該套匯流排的原理是資料線上傳送24v為同步訊號,12v為邏輯高電平,0v為邏輯低電平,通過自定義的協議實現主機與節點間的通訊。這套匯流排在一些系統中的應用是非常成功的,因為這套匯流排做了乙個自動搜尋的功能,主機可以通過自動搜尋尋找到匯流排上所有正常工作的探測器,這個功能大大的簡化了工程除錯工作,有一些場合下,甚至可以做到一鍵除錯完畢。

後來,我覺得這套匯流排的思路是非常好的,類似於歐州經常使用的m-bus,但要比m-bus好,因為m-bus雖然使用兩線傳輸數碼訊號和電源,但其匯流排上的電流不能超過200ma。於是我就在想,能不能在資料線上也能傳輸大電流的電源,資料線使用雙向傳輸,這樣就可以使用兩根線(一根訊號線,一根接地線)傳輸資料和電源。如果是這樣的話,還可以通過乙個橋堆實線兩根線無極性的連線,這樣更能給工程施工帶來方便,如果使用單線傳輸,那我們應該還可以將自動搜尋探測器變成探測器自動上線,這樣難道不更好麼,也就是說,一些應用中,我們甚至可以乙個鍵都不用按,即可除錯完畢!

通過一翻的思考,基本想通了主機及節點的實現原理,俗話說,心動不如行動,於是畫原理圖,做pcb,為主機,節點寫軟體。然後就是一系列的試驗,還是發現了不少的問題,問題始終糾結在自動上線這一功能上,哎,差一點放棄了。後來,通過請教朋友,及學校的一些老導師,檢視相關匯流排的一些功能,總算功夫不負有心人啊。現在這套匯流排以一主多從的方式工作,匯流排負載可達250個節點,在節點總電流不超過2a的情況下,可使用兩線制通訊,在超過2a的情況下,使用三線通訊(一根電源線,一根地線,一根訊號線)。傳輸距離比原先設想的好,我將100只節點掛在了總1000公尺匯流排的末端,幾乎沒有誤碼,如果使用軟體進行校驗,則可以做到安全傳輸。後來,我們將這套匯流排做成了模組,即lzbus_host和lzbus_node.lzbus_host通過ttl串列埠與使用者相接,通訊協議是自已編寫的。lzbus_node給使用者提供了乙個10位ad轉換和兩個開關量輸出介面。以後公司的現場匯流排相關的產品中,就可以免去匯流排相關的開發了.

LinkedList前世今生

1 linkedlist元素在內部儲存的實現,節點定義即指向前一元素的指標,後一元素的指標,當前元素的值。private static class entry 2 建立乙個空鍊錶。預設有個頭指標header。private transient entryheader new entry null,n...

前世今生 STL

嘛,string就是乙個用於字串處理的標準類庫,但是需要注意的是其速度可能會比直接操縱char陣列要慢一些。reverse這個方法是我一直都想找到但是沒有找到的,在判斷回文的時候格外好用。string s abcdef string ss s ss abcdef reverse ss.begin s...

位址 前世今生

alu arithemetic and logic unit 書面意思是 算術與邏輯部件,運算器,算術與邏輯單元,通俗來講 cpu處理的資料位數。從4位 8位 16位 32位,處理能力越來越強。發問 16位計算能力如何處理20位的位址呢?cs ip 是一組暫存器,用於告知 cpu 當前將要讀取的彙編...