新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 一種多通道ARINC429總線收發容錯方法的研究

        一種多通道ARINC429總線收發容錯方法的研究

        作者: 時間:2013-06-15 來源:網絡 收藏

        3.3 信號調理
        接收模塊接收到的信號去掉了負電平,如圖5中的busa和busb。對每一位信號,前半個位周期為數據周期,若busa為“1”且bush為“0”,則所要表達的數據為“1”,反之為“0”。后半個位周期為時鐘周期,busa和busb均為“0”。所以,通過將busa和busb進行或非運算,如圖中clk_429,在前半個位周期(數據)時為“0”,在后半個位周期(時鐘)為“1”。從而提取出了時鐘,并以此接收數據。同時,在每一位前半個周期提取出數據,在后半個周期鎖存上半個周期數據,得到數據信號bus_d。從信號調理仿真圖中可以看出,在每個時
        鐘信號clk_429的上升沿觸發時,可以從bus_d中采集到相應的數據信號。

        本文引用地址:http://www.104case.com/article/175788.htm

        f.JPG


        3.4 校驗
        校驗主要包括奇偶校驗和字校驗。奇偶校驗主要是將所有數據逐位異或,再根據校驗方式將異或結果和校驗位相比較。
        由于總線的時鐘、數據和字同步信息都由兩個差分的信號線來表達,當出現干擾時會使時鐘混亂,而字校驗則是校驗傳輸中是否有干擾,使傳輸的數據混亂。

        g.JPG


        如圖6所示,在busa的數據周期出現了干擾信號,導致通過busa運算得到的時鐘clk_429也出現了錯誤,在錯誤處插入了一位數據,并使后面的數據全部移位。而這種情況,有可能無法被奇偶校驗檢驗出來,則需要通過位檢驗來檢驗出來。
        位校驗是通過校驗一個周期的時間是否正確,來判斷是否出現干擾信號。位校驗信號onebit在接收模塊空閑時置0,當busa或busb上升沿到來時取反,并計數其為1時的時間。表2中列出了1位周期的計數值,考慮到傳輸誤差,當計數值滿足條件:cnt_one∈|x|7≤x≤9或63≤x ≤65}時,傳輸無誤,反之則視為錯誤數據,將位錯誤標志位wrongbit置1,在接收完成后將此數據舍掉。

        4 的自適應速率接收方法
        在前面提出的數據接收方法中,如遇到干擾信號,經位檢測檢測到后,則把該數據舍去。雖然保證了數據傳輸的正確性,但無法保證數據的有效傳輸,需要多次反復傳輸,來確保把所需傳輸的數據都傳輸到接收方。干擾信號無處不在,無法在根本杜絕,但是卻可以通過算法來修正錯誤的數據。
        這里使用的容錯數據接收方法,電平轉換電路、端口定義和狀態轉換都與以上的方法相同,但不采用總線提供的時鐘采集數據,而是對ARINC429總線的兩根信號線分別進行8倍頻的采樣。通過檢測中前4次時鐘周期的平均值來計算出數據的傳輸速率,對后面的數據選擇相應的接收頻率來接收。對于每一根信號線,當每一位采樣得到的數據不一致時,即由于干擾導致產生波動時,采用投票的方式表決;
        再將兩根信號線的信息進行綜合比對,糾正錯誤信號;如還有錯誤位,且只有1位錯誤,則運用校驗位信息計算出該錯誤位的實際信息,否則才舍掉此數據。
        4.1 傳輸速率自動識別
        普通的ARINC429接收模塊設計中沒有檢測傳輸速率,是因為無需通過傳輸速率來識別數據傳輸結束時的四位時鐘周期。而本文所介紹的方法,則需通過速率來選擇采樣頻率。當傳輸速率為100 Kb/s時,用800 kHz的時鐘采樣;當傳輸速率為12.5 Kb/s時,為使時鐘統一采用800 kHz的時鐘,但用計數器計數,計數值為8才采樣一次,以實現100 kHz采樣。
        在接收模塊處于接收狀態時,累加前4個周期時鐘周期,即busa和busb均為0的周期的計數值,然后將此累加和除以4,即右移2位,從而計算出了前4個時鐘周期的平均值,并據此計算出速率。因此,在前4個周期,用800 kHz的時鐘采樣。計算出傳送速率后,若為12.5Kb/s,則切換為100 kHz采樣時鐘。
        4.2 采樣數據處理
        采用8倍頻對信號進行采樣,這樣對每一位而言,前半個周期的數據采樣了4次,后半個周期的歸零時鐘也采樣了4次。將對數據采樣4次得到的4個數據進行對比,若4個數據一致,則傳輸無錯誤;若4個數據有3個一樣,則采用投票的方式,采信3個一樣的數據;若兩個數據為0,而另兩個數據為1,則無法判斷此位數據的值,記為錯誤位。
        由于ARINC429總線采用差分方式傳輸,即同時接收到兩組數據??赏瑫r對這兩組數據做位檢測,并對其進行綜合判斷。
        若經位檢測,測得A線為1,B線為z,則B線實際為0,即邏輯“1”;因為A線為1時,B線只能為0,來表達邏輯“1”,A、B線均為1的情況不存在。同理,測得A線為z,B線為1,則A線實際為0,即邏輯“0”。然而,若A或B線中,一個為0,另一個為z,則無法判斷其值;因為A、B線同時為0的情況存在,表示的是時鐘,只能將其記為錯誤位,如表3所示。

        i.JPG


        由于在采樣時,既得到了數據,也得到了時鐘,所以在對A、B線進行綜合判斷之后,需將時鐘信息去除掉,即將A、B線均為0的為去掉。然后判斷所得數據是否有錯誤位(z),以及錯誤位的數量。若錯誤位只有一位,則可通過其他位和奇偶校驗位,推算出該位的實際信息;若錯誤位不止一位,則無法推算出實際信息,只能將此數據字舍掉;若無錯誤位,則進行奇偶校驗。通過PC端軟件控制ARINC429板卡,進行多個通道的收發測試,如圖7所示。

        h.JPG



        5 結語
        實驗證明,使用本文論述的方法能夠自動識別傳輸ARINC429總線速率,在多通道通信過程中,充分發揮了系統實時性和并行數據處理的優勢,在民用航空電子設備的設計和研究中能夠可靠地進行數據傳輸,降低航空電子行業在測試設備方面的成本投入。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 明光市| 闽侯县| 泽普县| 新田县| 金门县| 张家口市| 乃东县| 云安县| 砚山县| 乡宁县| 醴陵市| 绥宁县| 色达县| 天峻县| 水富县| 宁陕县| 和田县| 崇州市| 普定县| 新营市| 巫溪县| 芦溪县| 静海县| 迁安市| 遵义市| 宜阳县| 合水县| 兴宁市| 扎兰屯市| 湖口县| 巩留县| 舟山市| 禄丰县| 孟连| 广丰县| 福泉市| 陇西县| 微博| 临安市| 自贡市| 清镇市|