一種基於半雙工通訊系統的通訊控制協議設計

  摘要:在許多控制系統中需要一個高效、簡單、可靠的通訊控制協議,用以保證裝置將控制資訊準確的發往目標裝置。由於控制資訊資料量小不需要進行雙工通訊,因此本文提出的通訊控制協議只針對於半雙工通訊控制系統。此外本協議具有通用性,可方便的移植到其他半雙工系統。
  關鍵詞:控制、通訊、協議、半雙工
  
   in many control systems a efficiently, simple, dependable correspondence control agreement, in order to promise that the equipments will control an information to accurately send to a target equipments.The control information amount of data's ising small doesn't need to carry on a pair of works correspondence, so this text put forward of the correspondence control agreement aim at work correspondence to control system at the half double.In addition this agreement has in general use, can conveniently transplant an other half double work system.
  , communication, negotiate, half double work
  
  當系統中的各個裝置通過某種物理鏈路相互聯接起來以後,並不意味著它們之間就能夠立刻進行資料交換了。裝置之間要進行通行還需要有通訊的規則即通訊協議。通訊協議通常要規定通訊的開始與結束,資料的接受者,所傳送資料的校驗方式以及鏈路的電氣介面引數等。
  目前常見的協議有基於乙太網的IEEE 802.3協議,基於CAN-BUS匯流排的CANopen協議等等。這些協議通常都比較成熟,它們或通訊速度快、或通訊可靠性高或抗干擾能力強,因而得到了廣泛的應用。但是在一些要求比較特殊的場合這些協議就不一定適用了。本文針對於對通訊速度要求不高、對價格控制比較嚴格系統,特別是控制系統設計了一種協議。這種協議基於半雙工通訊系統,具有通用性。
  硬體系統參考模型如:圖1-1:系統是由一個匯流排控制器與若干個裝置之間通過同一通訊匯流排連線。匯流排控制器與裝置,裝置與裝置之間能進行半雙工通訊。
  
  圖 1-1
  由於採用的是匯流排連線方式可以使得系統的成本大大降低,但是由於匯流排的特點不允許同時有兩個或以上的裝置傳送資料。因此需要匯流排控制器對匯流排的控制權進行分配。
  具體的通訊過程類似於令牌環網,首先匯流排控制器會登記在總線上的裝置地址,然後按照一定的演算法發出某一裝置的匯流排控制允許訊號。裝置在沒有得到匯流排控制允許訊號時都時處於聽者狀態的,一旦收到屬於自己的匯流排控制訊號後則將資料傳送到總線上。裝置傳送資料時匯流排控制器處於聽者狀態一旦受到裝置資料傳送完畢訊號立即將下一裝置的匯流排允許控制訊號發出,從而將匯流排控制權交給下一個裝置。
  在通訊系統中通常把要傳輸的資訊分成若干個塊來傳送,每個塊加上控制資訊成為一幀。同樣在本協議的參考模型中資料的傳送也是以幀為單位的,並且裝置在一次總週期中只能傳送一幀。本協議採用組幀技術[1]。規定幀的正常開始與結束用二進位制串01n0(n取6表示6個連續的1)稱為Flag。當裝置接收到6個連續的‘1’時表示一幀的正常開始,再接收到連續的劉個‘1’時表示一幀的正常結束。如裝置接收到連續的7個或以上時表示非正常開始或結束。如幀中的資料有連續的6個‘1’時,則在連續的5個‘1’後插入一個‘0’來解決與Flag的衝突。裝置在接收到連續的5個‘1’後自動將其後的‘0’刪除,如在其後的時‘1’則表示一幀的結束。
  考慮到低速系統採用處理器多為8位資料,且本協議傳送的資料主要為控制資訊。規定一幀的長度位32個二進位制位,其中高八位與低八位為幀開始與結束的Flag,中間16位為資料位。
  如同信資料為控制資訊這可規定資料位中高8位為地址資料如出現又連續6個‘1’的情況,則使用資料位中低8位的最高位擴充套件。資料位中低8位的次高位固定為‘0’緊接的4位為控制資訊稱為C_flag,其後一位固定為‘0’再後一位為奇校驗位。C_Flag的0H與fH保留用於匯流排控制器。0H用於匯流排控制權移交,fH用於登記地址。
  典型應用:
  系統採用圖1-1所示模型,共有三個裝置地址分別為00H、0fH、ffH。首先由匯流排控制器發出地址登記命令,如有該地址裝置則該裝置發出與匯流排控制器先前發處訊號相同訊號,匯流排控制器登記該地址。如匯流排控制器發出7e003d7eH登記00H裝置,受到訊號後00H裝置也發出7e003d7eH用以登記地址,登記一個裝置地址以後匯流排控制器將按自然數遞增的方法一直登記到最後一個地址。最後一個地址登記的訊號為:7efbbd7eH。
  登記完地址以後匯流排控制器只發出登記了地址的裝置匯流排控制允許訊號,這樣可以減少浪費的時間。如發出的ffH裝置匯流排控制允許訊號應為7efb817eH。
  以上介紹了本協議適用的範圍與產生背景,由於具有一定的普遍意義可以很方便的引用到單片及控制系統中。當然在開發中還有較多的注意事項,例如裝置失靈時匯流排控制器的等待只能在一定的時間內,否則的會引起假死狀態。因此本協議的適用可跟據具體的系統做一些適當的補充規定。
  
  參考文獻:
  [1]李建東,盛敏編著.通訊網路基礎[M].北京:高等教育出版社,2004.8
  
  註釋:
  ①專案基金:貴陽學院2008院級課題。
  ②作者簡介:孫健(1979-)貴陽學院物理與電子資訊科學系講師;貴州大學2006級在讀研究生,主要研究通訊與自動控制。