第1003章 除了電氣,還有協議(先發一章)
再想到這東西甚至能實現匯流排傳輸,一根線上掛接多個感測器,這極大的節約了採集裝置的介面數量,簡化了系統結構。
這是甚麼?這就是錢啊!
“老同學,你真是神了!”
高振東笑起來,能不神嘛,花旗電子工業協會嚴選,值得信賴!只是這年頭他們還沒制定這東西,那我老高就替國內搞工控的同志,先笑納了。
他順便給薛崇禮指了條路:“如果在研究過程中對器件有甚麼要求,可以和十二機部聯絡一下。特別是1274和1218廠,或者有甚麼要求進口一點也是可以的。”
總的來說,用分立元件搭RS-485的電路不難,這東西主要麻煩在要確定合適的規格,規格一旦確定,實現卻是沒有那麼的麻煩。
“好嘞。”薛崇禮知道高振東這話的意思,是有了他做背書,自己去十二機部找人的話說話好使。
“這是硬體介面,至於軟體介面,來,你看看這個。你要負責在兩頭的微控制器裡實現這套傳輸協議。”
已經涉及到匯流排和傳輸規約了,不上微控制器是搞不定的,其實很多數字感測器可以看作是模擬感測器加了片微控制器,把採集引數轉換成數字之後,透過數字介面傳送到下一級去,比如傳送到這裡要搞的資料採集傳輸裝置去。
高振東這裡並沒有選用在幾十年後工控上極為流行的ModBus協議,而是選了一個在水利上使用比較多的,非常小眾的協議。
SDI-12,一種以ASCII碼為主的傳輸協議,除了因為匯流排的原因,需要對傳輸線執行電平升降的時序操作保證不衝突之外,其他能看到的東西全是ASCII碼,能在資料包裡直接一眼就讀出資料是多少。
當然,現在ASCII碼並不叫ASCII碼,在國內叫“直讀資料交換編碼”。
SDI-12相比起ModBus,最大的好處就是簡單得多,沒有ModBus那麼多種模式和複雜的規定,用於簡單資料傳輸非常方便,由於採用ASCII碼傳輸,其表徵精度幾乎是無限的,資料包也極度簡潔,雖然原版的SDI-12有一個問題,其感測器地址只用一個ASCII碼錶示,地址容量有限,但是從‘1’~‘9’、‘A’~‘Z’、‘a’~‘z’加起來其實也夠用了。
薛崇禮也是緊跟計算機發展的進度的,看著高振東給他的協議說明檔案,讚不絕口:“嗯,這個好,簡單明瞭,資料包也不大。”
資料包不大,在這個年頭非常重要,微控制器執行儲存器都是按位元組計算,每一位搞微控制器的同志都恨不得一位掰成兩半來用,可沒有幾十年後片內RAM動不動就按KByte計算那麼豪橫。
SDI-12沒有用常見的TLV(,標題-長度-值)結構,那樣太長了,他的感測器回覆資料大致是這麼個畫風。
“1+.6!”,純ASCII字串。
‘1’是感測器號,‘+’號可以是正負號中的任意一個,後面是感測器的值,‘!’是結束符,就這麼簡單。
對於薛崇禮來說,SDI-12的整套傳輸規約反而是相當簡單的,麻煩的是要操作RS-485匯流排實現訊號線上的時序訊號完成啟動、握手、傳輸、結束的整個過程。
“資料的傳輸本身倒是很簡單,反而是時序訊號麻煩一些。”薛崇禮道,但是他也知道,這已經是最簡單的了,老同學在這方面已經儘量擯棄了不必要的複雜功能。
高振東點點頭:“是的,不過你可以從簡單的開始做起,甚至在這個遠端串列埠匯流排上,你可以先實現資料的傳輸,時序訊號甚麼的,放到後面來做。”
“這樣可以麼?”作為還沒有對SDI-12有深入研究的薛崇禮,對於這個東西的理解還沒有那麼深。
“可以的,實際上資料傳輸這部分,本來就可以拎出來單獨用。反正你感測器到資料採集終端是從主模式,實際上可以節省很多握手和衝突處理過程。你可以先做一個子集,再做全集嘛。”
實際上SDI-12的簡化版,甚至是切割掉硬體握手規定之後的純資料傳輸部分,在後來大量被應用到土壤、水利、環保、氣象等領域,因為這東西原本是花旗環保局制定的。
其他同志聽他們兩對話有點像聽天書,但是薛崇禮卻是把高振東的話聽得有點明白了。
“主從模式下可以省略握手和衝突處理?”
高振東點點頭,畫了一個主從模式的匯流排掛接示意圖。
“你看這裡,在這種模式下,能發起通訊的只有作為主機的資料採集傳輸器,其他的感測器都是在接收到對自己的詢問之後才會發起,這樣一來,握手和衝突處理就簡單多了,幾乎沒有太多需要處理的地方,唯一需要處理的,就是地址查詢指令,不要讓所有的感測器同時回覆地址就行,甚至在這種情況下,可以在主機端禁用掉地址查詢指令。”
高振東那能湊合就湊合的德性又上來了,這年頭的技術條件有限,有些東西能省則省,預留下升級空間就成。
“誒,這樣一來,果然簡單多了,等到我這裡的幾個經驗和能力足夠了,再去搞更進一步的。”薛崇禮不傻,高振東這麼一解釋,他就知道自己該做甚麼。
“對嘛,你可以先搞一個1.0版本出來,然後再向1.1、1.2更高版本完善,只要注意保持好向下相容性就行,這樣前面搞出來的東西也不至於就浪費了。”“好,我回去馬上就請領導組織隊伍,把這個事情搞起來。”薛崇禮信心十足。
侯處長也及時表態:“對,我們回去就報請院裡加強一下力量,儘快把這套東西給搞出來,爭取能在半年內,就在重點水庫、大壩、堤壩等地用上第一批。”
半年……高振東想了想,點了點頭:“嗯,可以,不要超過半年。不一定上來就要搞數字感測器,對於你們的用途,4~20mA的精度是足夠,對於大部分感測器來說,這東西還便宜、簡單一些。”
薛崇禮記了下來,這話很及時,但是這有個新問題。
“可是4~20mA是支撐不了匯流排結構的,這樣一來,對採集器上的4~20mA通道數量就有了新要求啊,A/D轉換可不便宜。”4~20mA那是用一路就要多一路介面,一臺採集器上至少要2~4路這種介面才夠用。
高振東搖搖頭:“A/D轉換器一個就行啊,你們用數位電路控制多路繼電器開關,保證多路介面同時只有一路進入A/D轉換電路就行,介面又要不了幾個錢。比如你們用3-8譯碼器電路晶片,最多可以透過三路IO口控制八路模擬採集通道,而且能保證通道的唯一性。”
本來高振東想要他們找1218看看固態繼電器的,但是考慮到在這個問題上,暫時固態繼電器的電氣效能不如電磁繼電器,也就作罷。
對於高振東在這些方面信手拈來,薛崇禮是真真切切的感受到了自己和老同學之間的差距。
“啊,我明白了,嗯,這個我回去仔細琢磨琢磨。”
“嗯,行,這些細節問題相信你自己花點心思也能摸索出來。接下來,我們說一說水雨情的事情。”
侯處長對這個的發言權可就大多了,在來之前,他專門和院裡搞水文的同志溝透過,當搞水文的同志聽說有辦法能在很短的時間內、以較低的代價取到雨量資料的時候,其興趣簡直達到了頂峰。
他們現在用的雨量資料,除了附近水文站、偶爾會有氣象局的雨量之外,就是大壩上有個人工觀測。
可是這種資料對於他們來說是不夠的,特別是越大的水庫,其流域集雨面積就越大,此時只是大壩上那一個點的雨量資料,對於水文情報預報意義不大,太過稀疏。
而水文站本身就是一個非常昂貴的設施,不可能修得到處都是。
侯處長現在還記得負責水文的同志的話:“要是能在幾分鐘之內,把流域範圍內的各點雨量資料拿回來,那我們的水庫排程就能走上一個新的篇章。”
所以他最感興趣的,就是雨量。
“高總,我們院裡的同志對雨量計非常有興趣。能請你先說說這個麼?”
高振東倒是無可無不可,反正採集傳輸裝置都已經交代完了,剩下的幾種水雨情感測器先說哪種都成。
“水利上,無人自動測報站我的建議是用翻鬥雨量計。”
“翻鬥雨量計?就是類似虹吸自計雨量計的那種。”
高振東搖了搖頭:“看起來像,其實測量原理完全不同。”
自計雨量計聽起來好聽,實際上就是把雨水收集起來,結合一個浮子,利用浮子帶動一支筆在一卷發條帶動的座標紙上畫下雨量曲線。集水杯滿了,就透過虹吸原理自動排空,然後又從座標紙縱軸底部重新開始。
就這,在這年頭已經算是先進裝置,還有純靠人工觀測的。
“虹吸雨量計有個問題,不夠直觀,而且沒法直接得到累積雨量。翻鬥雨量計透過採集裝置自動計數,能夠解決這個問題。”
(本章完)