?

接口技術在系統開發中的應用

2015-02-26 03:11蘇新凌蘇紹熙湯詩陽作者單位廣西人民廣播電臺
西部廣播電視 2015年13期
關鍵詞:接口技術通信協議二次開發

劉 軍 蘇新凌 蘇紹熙 湯詩陽(作者單位:廣西人民廣播電臺)

接口技術在系統開發中的應用

劉 軍 蘇新凌 蘇紹熙 湯詩陽
(作者單位:廣西人民廣播電臺)

摘 要:接口技術是系統開發中不可或缺的部分,是不同模塊,不同硬件、硬件與軟件、軟件與軟件之間的聯系橋梁,是系統連接的關鍵環節。本文通過對常用接口及協議的闡述,以及應用開發中的實例經驗來說明接口協議的作用、應用選擇、開發技巧等。

關鍵詞:接口技術;通信協議;二次開發;系統組合

隨著廣播的發展,越來越多的新技術在廣播的多個方面得到應用,除了使用廠商生產的成品設備,更多的是為了適合本臺技術需求所做的定制化開發。定制化開發一般包括系統軟件和硬件的二次開發,二次開發中非常重要的一部分內容就是各軟硬件或模塊間的通信連接,也就是接口技術和通信協議的應用,有了合適的通信連接,才能讓一個整體聯合發揮出功能作用。因此在技術開發中,接口、協議技術應用具有舉足輕重的作用。要有RS-232、RS-422、RS-485等。

1 接口、協議的定義及常見接口

在電子及計算機領域中,接口指實體根據某些規則,將其自身歸納并提供給外界的一種抽象化集合,用以進行信息的傳輸或交互。接口的抽象性決定了其可被內部修改而不影響外部傳輸和交互的特性。

在硬件層面,它是大多數接口行業組織提出制定的技術標準演化而成。常用的接口有串行接口(簡稱串口)(包括RS-232、RS-485、SPI、UART、I2C、JTAG、USB等)、并行接口(簡稱并口)、Wiegand、GPIO、RJ45、IDE、SATA、HDMI、VGA、DP、PCI-E、DDR等。在軟件層面,接口可以有2層含義,首先是狹義的、字面理解的“接口”,即各種語言和軟件所給出的API;而廣義的接口指的就是人機交互界面。

1.1串口

接口有串口和并口兩大類,串行接口(Serial Interface)是采用串行數據傳輸方式的接口,即一串數據的各比特位按位順序傳輸。其特點是數據傳輸單位較小,傳輸線路簡單,成本較低廉,特別適用于遠距離傳輸,常見串行接口主

1.1.1RS-232(圖1)是美國電子工業協會EIA制定的一種串行物理接口標準,這個標準對串行接口的電氣特性、信號線功能都作了明確規定。由于通信設備廠商都生產與RS-232接口兼容的通信設備,它作為一種標準接口在電子通信中廣泛使用。RS-232接口總線標準設有25條信號線,包括一條主通道以及一條輔助通道,在多數情況下主要使用主通道進行通信。RS-232接口標準規定的數據傳輸速率為50、75、100、150、300、600、1200、2400、4800、9600、19200、38400波特。

1.1.2針對RS-232接口存在的很多不足之處,后來發展出RS-485接口,它具有10 Mbps最高數據傳輸速率;接口信號電平比RS-232低,不易損壞接口電路的芯片;且與TTL電平兼容,方便與TTL電路連接、抗共模干擾能力增強、抗噪聲干擾性好等,特別是傳輸距離大大提高,達到了千米左右,支持多點互聯,非常利于聯網構建分布式系統。

圖1 RS- 232接口原理圖

1.1.3SPI是串行外設接口,它可以使單片機與各種外圍設備以串行傳輸的方式進行通信以交換信息。SPI是CPU和外圍低速器件之間進行同步串行數據傳輸的接口,為全雙工通信,在主器件的移位脈沖下,數據按位傳輸,高位在前,低位在后。SPI接口一般有4條線:串行時鐘線(SCLK)、主機輸入/從機輸出數據線MISO、主機輸出/從機輸入數據線MOSI和低電平有效的從機選擇線NSS(有的SPI接口芯片帶有中斷信號線INT、有的SPI接口芯片沒有主機輸出/從機輸入數據線MOSI),如圖2所示。SPI接口具有支持全雙工操作、操作簡單、數據傳輸速率較高的優點。

1.1.4UART接口,通用異步接收發送器,它用于串行通信與并行通信間的信息傳輸轉換,并行輸入,串行輸出,為全雙工通信,其基本結構圖3所示。

1.1.5USB接口(圖4)恐怕是目前最常見的接口了,它是連接計算機系統與外部設備的一種串口總線標準,只有4

根線,兩根電源兩根信號,也是一種輸入輸出接口的技術規范,被廣泛地應用于個人電腦和移動設備等信息通訊產品。

圖2 SPI接口多外圍設備連接示意圖

圖3 UART基本結構圖

圖4 USB接口正反面實物圖

1.2并行接口

并口指采用并行傳輸方式來傳輸數據的接口標準。特點是傳輸速度快,但當傳輸距離較遠且數據位寬較大時,就導致通信線路復雜且成本提高,目前已經很少使用。

1.3韋根接口

韋根(Wiegand)接口是近年來使用較為普及的一種接口,協議是由摩托羅拉公司制定的一種通訊協議,沒有定義通訊的波特率,也沒有定義數據長度。韋根接口通常由3根線組成,它們是數據0(Data0)、數據1(Data1)和Data return。Data0和 Data1兩根數據線分別傳輸0和1?,F在應用最多的數據格式為26-Bit。

1.4GPIO接口

GPIO接口也是廣播技術人員比較熟悉的接口,它是通用輸入輸出接口,簡單說就是一些引腳,通過它們輸出高低電平或通過它們讀取引腳高低電平狀態。

1.5軟件接口

上述接口是和硬件關聯度很高的,在開發系統時候往往都有管理軟件,軟件與軟件之間也有多種接口協議,這些不是實物看得到的接口,但是也同樣具有重要的連接和通訊協調工作的作用。

軟件接口一般分為三個層面:展現、業務和通信。業務層是核心,承上啟下,通過一系列的指令進行交互,指令序列規定了具體執行的步驟,如TCP的三次

握手:SYN,ACK,SYN,ACK。通信層是雙方完成交互的一種通訊載體,用來傳遞具體協議信息,可以同一進程內,不同進程間,兩不同設備間傳輸,還可以通過數據庫和文件來傳輸。展現層則重在考慮溝通雙方的使用方式,通過一個個具體的API來完成最終的交互,這就是通常所說的“Interface”,如圖5所示。

圖5 接口框圖

2 在二次開發中接口、協議的選擇和處理方法

在技術開發中,各子系統各模塊間的連接離不開各類接口及協議的使用。而對接口和協議的選擇,要根據需求及設計的功能來確定,比如數據傳輸速率、傳輸距離、對環境的要求等方面。在二次開發中,也會遇到硬件或軟件是單品采購,然后不同硬件軟件之間要聯系起來使用,就需要首先清楚每個硬件軟件的接口和協議是什么,對聯上需要做什么轉換,有些可以采用市場上既有的接口轉換器來實現,有些就是通過搞清楚協議通訊的定義方式,然后通過定制開發中間件來實現連接。因此,總結來說,需要熟悉接口和協議的原理,使用方式。如果是涉及軟件,接口必須是開放的,這樣才能根據協議編制方式來針對性開發。

3 軟硬件連接開發實例說明

3.1硬件接口實例說明

該例子是無線射頻讀卡機讀取卡片信息與管理平臺通訊實現管理的一個系統。這個系統涉及到串口,RS-485接口,RJ-45網絡接口,運行時,其中無線射頻讀卡機讀取卡片信息后,通過485接口把數據(產品約定的格式)傳送到單片機,單片機處理后編碼通過串口轉成IP發送給服務器管理平臺,管理平臺驗證之后把指令回傳給單片機,由單片機根據指令輸出控制。下位機與上位機通訊至關重要,為使下位機與上位機進行有效的

交互,自定義了一種通訊規范,為上位機及單片機的有關編程提供依據。部分規定定義如表1。

表1 下位機與上位機部分通訊規范

軟件管理平臺采用動態鏈接庫,提供了諸多API接口,在二次開發接口的設計和實現中,大大降低了開發的難度,用戶自定義的接口協議形式,是一種更靈活的通訊方式,同時也是按一定的原則基本上實現的,它為上位機和下位機的通訊編程提供依據。

3.2軟件接口實例說明

該例子是兩個軟件管理平臺之間數據傳送。在開發項目中有一個內容是在兩地的不同單位設計建立兩套軟件平臺,其中1套負責收集相關的資訊信息,另外1套作為用戶,通過互聯網傳送數據,由于兩套軟件各自采用不同的語言及架構,雙方為了通訊數據,采用Web Service接口,該接口能使運行在不同機器上的不同應用無須借助附加的、專門的第三方軟件或硬件,就可相互交換數據或集成。依據Web Service規范實施的應用之間,無論它們所使用的語言、平臺或內部協議是什么,都可以相互交換數據。從表面上看,Web Service就是一個應用程序,它向外界暴露出一個能夠通過Web進行調用的API。這就是說,你能夠用編程的方法通過Web來調用這個應用程序。把調用這個Web Service的應用程序叫做客戶。這種接口開發的優勢在于能夠應用程序集成,無需考慮數據交互雙方的系統差異。

3.3軟件遠程控制設備實例

該例子是通過軟件遠程控制一臺調頻發射機工作。例子中調頻發射機也有網管接口,可以通過軟件控制發射機的工作及提取運行數據,這里采用的是Socket進行雙向的通信連接實現數據的交換,通過IP地址和端口來實現不同虛擬機或不同計算機之間的通信。Socket的英文原意是“孔”或“插座”,就像在Internet上運行的主機所提供的多種服務,每一種服務就是一個“插座”,端口就像是“插座”上的編號,有的“插座”提供220 V的交流電,有的則是110 V的交流電??蛻糁恍枰ㄟ^不同的“編號”(即端口),就能得到不同的服務。

連接發射機時只需要得到發射機一端IP和端口,即可建立一個處于等待連接、實時監控網絡狀態的Socket。在Socket握手成功后,因其雙向通信的特性,在控制調頻發射機的同時,也能得到發射機反饋回來的各類實時參數。同時本例子中的所有Socket通信其內容必須通過CRC16安全校驗才能被認為有效。

具體實現:

//1與服務端建立連接

Socket client = new Socket(“IP”,”端口”);

//2發送命令

DataOutputStream writer = new DataOutputStream(client.getOutputStream());

writer.write(bufData);

writer.flush();

//3返回值

Input Streambr = client.getInputStream();

//設置超時間為10秒

client.setSoTimeout(10*1000);

int totalBytesRcvd = 0;

//數據容器

byte[] rdsDate = new byte [“字節長度”];

totalBytesRcvd=br.read(rdsDate);

//4以下結束通信

writer.close();

br.close();

client.close();

return rdsDate;

}

上述代碼為一個簡單的Socket通信的步驟,簡單來說就是

(1)通過IP和端口建立連接

(2)創建客戶端輸出流,往服務器發送命令

(3)創建客戶端輸入流,獲取服務器接收到請求后的返回值

(4)結束本次通信,清除輸出流、輸入流。

Socket接口優勢在于傳輸數據為字節級,傳輸數據可自定義,應用靈活,數據量??;傳輸數據時間短,性能高;適合于客戶端和服務器端之間信息實時交互;可以加密數據,數據安全性強。

4 接口開放的意義和價值

目前越來越多的電臺在技術系統更新或改造中,都會考慮日后的升級性和調整的方便性,同時在建設中可能存在不同商家的開發子系統,需要組合來應用。這樣就必須掌握底層的協議,其中很典型的一個就是接口協議,外部的硬件接口很顯然容易掌握和應用,但是軟件系統的接口則有不同的協議或編寫格式。接口的開發,意味著能夠拿到二次開發的工具,能夠通過自己或第三方根據開放的接口進行進一步的系統改造升級,這樣對于系統的改進,具有很重要的價值,可以實現類似SOA架構的模塊擴展,滿足系統不斷擴展升級的需求。

5 結語

廣播技術包含諸多種類,新技術的應用,系統升級或補充完善是常態化的。解決系統的封閉性,為了更符合實際應用要求,更具有使用保障性和后期升級空間,開放的接口越來越受到重視。二次開發更是掌握主動的辦法,突出體現了實用性和擴展性,接口技術的應用給二次開發提供了良好的連接橋梁。因此掌握好這些通信接口協議技術,是技術深度、廣度開發應用的必不可少的技術工具,在技術開發上體現出越來越重要的作用。

猜你喜歡
接口技術通信協議二次開發
基于Wireshark的列控中心以太網通信協議解析器的研究與實現
論《單片機原理與接口技術》跨校修讀模式
高等學校計算機專業課程教學改革實踐——以匯編語言與接口技術課程為例
西門子Operate高級編程的旋轉坐標系二次開發
淺談Mastercam后處理器的二次開發
電力系統全網一體化暫態仿真接口技術
西門子Easy Screen對倒棱機床界面二次開發
關于電力物聯網信息模型及通信協議的設計要點分析
ANSYS Workbench二次開發在汽車穩定桿CAE分析中的應用
基于風險分析的安全通信協議簡化研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合