您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶(hù)?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>通信技術(shù)>基礎(chǔ)知識(shí)>

包裝協(xié)議數(shù)據(jù)單元 - AOS上行鏈路控制器的設(shè)計(jì)與實(shí)現(xiàn)

2011年06月29日 10:17 單片機(jī)與嵌入式系統(tǒng) 作者:丁艷會(huì),郝俊壽 用戶(hù)評(píng)論(0
(3)包裝協(xié)議數(shù)據(jù)單元

  包裝協(xié)議數(shù)據(jù)單元(E_PDU)如下:

  

?

  2 控制器的實(shí)現(xiàn)

  在控制器的實(shí)現(xiàn)平臺(tái)的選擇上使用了我國(guó)方舟(ARCA)科技公司GT2000嵌入式開(kāi)發(fā)板,因?yàn)镚T2000是方舟科技的一款基于方舟二號(hào)為核心的嵌入式CPU產(chǎn)品,是我國(guó)第一個(gè)具有自主知識(shí)產(chǎn)權(quán)CPU。它在主頻400 MHz下運(yùn)行時(shí)最大功耗只有360 mW,具有高性能、低功耗的特點(diǎn),對(duì)于研究具有我國(guó)自主知識(shí)產(chǎn)權(quán)的AOS的底層接口器件、關(guān)鍵模塊和設(shè)備具有重要的意義。GT2000提供兩個(gè)串口,一個(gè)以太網(wǎng)口及其他外設(shè)接口。鏈路控制器就是利用其提供的以太網(wǎng)口進(jìn)行數(shù)據(jù)傳輸。同時(shí)由于GT2000內(nèi)嵌Linux操作系統(tǒng)使進(jìn)程間通信機(jī)制十分靈活,而且Linux系統(tǒng)所提供的Socket通信接口和各種豐富的系統(tǒng)異步時(shí)間處理方式為在其上快速地處理數(shù)據(jù)提供了極大的方便。

  根據(jù)前述控制器所完成的功能,在Linux平臺(tái)上采用標(biāo)準(zhǔn)的C語(yǔ)言進(jìn)行實(shí)現(xiàn)。

  上行鏈路控制器工作過(guò)程中最重要的是解復(fù)用功能。首先判斷首導(dǎo)頭指針,當(dāng)首導(dǎo)頭的指針在M_PDU數(shù)據(jù)域長(zhǎng)度范圍內(nèi)時(shí),M_PDU模塊把首導(dǎo)頭指針?biāo)甘镜纳弦粋€(gè)CCSDS包的剩余部分放入CCSDS緩沖區(qū),此時(shí)CCSDS緩沖區(qū)的數(shù)據(jù)是一個(gè)完整的CCSDS格式包,然后判斷它的數(shù)據(jù)類(lèi)型,如果是包裝數(shù)據(jù),則調(diào)用DE_PDU模塊,進(jìn)行解包,然后進(jìn)行轉(zhuǎn)發(fā),緩沖區(qū)清零。接著處理M_PDU包區(qū)中新開(kāi)始的CCSDS包,首先判斷該CC-SDS導(dǎo)頭是否包含長(zhǎng)度域,如果不包含長(zhǎng)度域,則把該M_PDU包的剩余部分全部放入CCSDS緩沖區(qū),繼續(xù)接收下一個(gè)M_PDU包。如果包含有長(zhǎng)度域,則計(jì)算此CCSDS包的長(zhǎng)度,并與M_PDU剩余的長(zhǎng)度進(jìn)行比較,CCSDS包的長(zhǎng)度大于M_PDU剩余長(zhǎng)度時(shí),則把M_PDU的剩余部分?jǐn)?shù)據(jù)全部放入CCSDS緩沖區(qū),繼續(xù)接收下一個(gè)M_PDU數(shù)據(jù)。CCSDS包的長(zhǎng)度等于M_PDU剩余長(zhǎng)度時(shí),則把M_PDU的剩余部分?jǐn)?shù)據(jù)全部放入CCSDS緩沖區(qū),繼續(xù)接收下一個(gè)M_PDU數(shù)據(jù)。CCSDS包的長(zhǎng)度小于M_PDU剩余長(zhǎng)度時(shí),則把此CCSDS包全部放入CCSDS緩沖區(qū),判斷其版本號(hào),如果是可復(fù)用數(shù)據(jù)就直接轉(zhuǎn)發(fā)出去,如果是不可復(fù)用數(shù)據(jù),則調(diào)用解包裝模塊DE_PDU,進(jìn)行解包,再進(jìn)行轉(zhuǎn)發(fā),然后循環(huán)判斷M_PDU中下一個(gè)CCSDS包,直至CCSDS包的長(zhǎng)度大于或等于M_PDU剩余長(zhǎng)度后,繼續(xù)接收時(shí)的剩余部分?jǐn)?shù)據(jù)全部放入CCSDS緩沖區(qū),繼續(xù)接收下一個(gè)M_PDU數(shù)據(jù)。解復(fù)用模塊的工作流程如圖2所示。

  

?

  3 測(cè)試及驗(yàn)證

  鏈路控制器可以支持多路數(shù)據(jù),首先模擬一些真實(shí)的數(shù)據(jù):非定界字符串,IPV6,IPV4,CP_PDU,把PC機(jī)和控制器通過(guò)以太網(wǎng)口相聯(lián),把模擬的各種數(shù)據(jù)發(fā)送給控制器,控制器接收數(shù)據(jù)進(jìn)行識(shí)別處理。測(cè)試結(jié)果表明該控制器可以較好地進(jìn)行數(shù)據(jù)的解VCA和解復(fù)用,無(wú)丟包現(xiàn)象,工作穩(wěn)定、可靠。

  4 結(jié)語(yǔ)

  本文介紹了基于國(guó)產(chǎn)芯片設(shè)計(jì)的AOS系統(tǒng)的上行鏈路控制器,采用該控制器可以較好地處理模擬的航天器數(shù)據(jù),并且對(duì)數(shù)據(jù)傳輸中的一些關(guān)鍵技術(shù)進(jìn)行了驗(yàn)證,為今后進(jìn)一步的研究打下基礎(chǔ)。

非常好我支持^.^

(1) 100%

不好我反對(duì)

(0) 0%

( 發(fā)表人:葉子 )

      發(fā)表評(píng)論

      用戶(hù)評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?