0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)GPRS-串口數(shù)據(jù)透明傳輸簡(jiǎn)介

英創(chuàng)信息技術(shù) ? 來(lái)源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-01-14 14:04 ? 次閱讀

GPRS通訊和串口通訊都是工控領(lǐng)域使用極為頻繁的數(shù)據(jù)傳輸方式,而實(shí)際工程中經(jīng)常需要在GPRS和串口之間進(jìn)行數(shù)據(jù)的透明傳輸,即:將串口終端設(shè)備傳輸過(guò)來(lái)的各種數(shù)據(jù)通過(guò)GPRS發(fā)送到另一設(shè)備,或者將GPRS終端設(shè)備傳輸過(guò)來(lái)的數(shù)據(jù)通過(guò)串口轉(zhuǎn)發(fā)。利用英利開(kāi)發(fā)資料光盤中的GPRS、以太網(wǎng)和串口示例程序,可以很容易地開(kāi)發(fā)這樣一個(gè)GPRS-串口數(shù)據(jù)透明傳輸?shù)膽?yīng)用例程。

在英利開(kāi)發(fā)資料光盤的“應(yīng)用開(kāi)發(fā)軟件”-“典型應(yīng)用”中,有一個(gè)名為“gprs232”的文件夾,就是GPRS-串口數(shù)據(jù)透明傳輸?shù)氖纠こ涛募?。該例程包括了串口、以太網(wǎng)和GPRS操作,以多線程方式實(shí)現(xiàn),程序流程如下:
1、初始化串口并啟動(dòng)串口數(shù)據(jù)處理線程
2、打開(kāi)GPRS并建立連接
3、建立TCP連接,啟動(dòng)網(wǎng)絡(luò)數(shù)據(jù)處理線程并進(jìn)行數(shù)據(jù)透明傳輸

1、準(zhǔn)備工作

在測(cè)試和使用該例程之前,需進(jìn)行如下準(zhǔn)備工作:

1、將英利工控主板的調(diào)試串口連接到開(kāi)發(fā)主機(jī),然后將英利工控主板的串口ttyS2(程序默認(rèn)。如果使用其他串口,請(qǐng)參照程序代碼,在命令行帶入相關(guān)參數(shù))與實(shí)驗(yàn)用PC機(jī)的串口連接(開(kāi)發(fā)主機(jī)的COM1往往和英利工控主板的調(diào)試串口連接,用于通過(guò)超級(jí)終端操作英利工控主板。因此如果開(kāi)發(fā)主機(jī)還有一個(gè)完好的串口,可以將此串口連接到ttyS2;否則建議客戶另找一臺(tái)PC機(jī)連接ttyS2,以便于測(cè)試該例程。本文中的“實(shí)驗(yàn)用PC機(jī)”就是指連接ttyS2的PC機(jī))。

2、將實(shí)驗(yàn)用PC機(jī)、開(kāi)發(fā)主機(jī)和英利工控主板都接入實(shí)驗(yàn)室內(nèi)網(wǎng),并確保實(shí)驗(yàn)室內(nèi)網(wǎng)和公共局域網(wǎng)的連接都正確無(wú)誤。

3、將ETA300與英利工控主板連接好,將實(shí)驗(yàn)用SIM卡裝在ETA300上面。

4、將英利工控主板/mnt/nandflash文件夾下userinfo.txt文件中的默認(rèn)網(wǎng)關(guān)改為0,即如下:
DefaultGateway='0'
如果不進(jìn)行這個(gè)修改,則系統(tǒng)默認(rèn)會(huì)通過(guò)以太網(wǎng),而非GPRS傳輸數(shù)據(jù)。

5、通過(guò)實(shí)驗(yàn)室的網(wǎng)關(guān)路由器,為實(shí)驗(yàn)用PC機(jī)分配一個(gè)端口,并記下該網(wǎng)關(guān)路由器的外網(wǎng)IP地址。

6、將英利開(kāi)發(fā)資料光盤“工具軟件”中的“串口調(diào)試助手”和文件夾“TCPTest_Linux”復(fù)制到實(shí)驗(yàn)用PC機(jī)上,啟動(dòng)串口調(diào)試助手和“TCPTest_Linux”中的TCPTest。TCPTest啟動(dòng)以后將套接字類型選擇為服務(wù)器,服務(wù)器名稱填入實(shí)驗(yàn)用PC機(jī)的內(nèi)網(wǎng)IP地址,服務(wù)器端口填入之前為實(shí)驗(yàn)用PC機(jī)分配的端口號(hào),然后選擇偵聽(tīng),如下圖所示。

2、例程測(cè)試

以上6步準(zhǔn)備完畢以后,在開(kāi)發(fā)主機(jī)上啟動(dòng)超級(jí)終端,為英利工控主板上電,啟動(dòng)sourcery g++并編譯gprs232工程文件,通過(guò)超級(jí)終端將應(yīng)用程序下載到英利工控主板的/mnt/nandflash文件夾中,并輸入如下命令運(yùn)行程序:
[root@EM9X60 /mnt/nandflash]#./gprs232 50

由于GPRS模塊首次上電連接速度可能比較慢,因此此處設(shè)置了參數(shù)50(等待50秒。該項(xiàng)設(shè)置與用戶使用的SIM卡有關(guān)。如果50秒以后仍然無(wú)法連接,可以將這個(gè)時(shí)間再加長(zhǎng))。一旦首次連接成功以后,只要不斷開(kāi)電源,再次運(yùn)行該程序的時(shí)候可以不設(shè)置這個(gè)參數(shù),直接如下運(yùn)行即可:
[root@EM9X60 /mnt/nandflash]#./gprs232

此后系統(tǒng)自動(dòng)進(jìn)行初始化和連接,過(guò)程中用戶可以看到ETA300上的SYNC燈閃動(dòng),表示找到SIM卡以及連網(wǎng),同時(shí)超級(jí)終端會(huì)顯示相應(yīng)的運(yùn)行信息。連接成功以后,超級(jí)終端最后一行信息顯示:TCP Connect Success;同時(shí),實(shí)驗(yàn)用PC機(jī)上TCP Test的消息欄也從不可編輯的灰色狀態(tài)變?yōu)榭梢暂斎胄畔顟B(tài),如下圖所示。

此后通過(guò)串口調(diào)試助手發(fā)送信息,可以看到信息顯示在TCP Test的“接收的信息”欄中,通過(guò)TCP Test發(fā)送的信息則顯示在串口調(diào)試助手的接收區(qū)中。發(fā)送/接收數(shù)據(jù)的過(guò)程中,ETA300的SYNC燈會(huì)閃動(dòng),表示數(shù)據(jù)正通過(guò)GPRS發(fā)送/接收。如果SYNC燈沒(méi)有閃動(dòng),則數(shù)據(jù)并不是通過(guò)GPRS發(fā)送/接收。此時(shí)需檢查userinfo.txt的默認(rèn)網(wǎng)關(guān)是否配置為0。

3、程序說(shuō)明

該例程的主程序參見(jiàn)光盤中的源文件。本例程以多線程方式實(shí)現(xiàn),串口、TCP數(shù)據(jù)收發(fā)由各自獨(dú)立的線程完成,這樣不但能夠充分發(fā)揮嵌入式Linux多任務(wù)操作系統(tǒng)的優(yōu)勢(shì)、實(shí)時(shí)處理數(shù)據(jù),同時(shí)有利于減少系統(tǒng)開(kāi)銷、提高系統(tǒng)資源利用效率。其中主程序部分需要用戶自行填寫參數(shù)的是以下兩個(gè)地方:

// 此處填寫網(wǎng)關(guān)路由器的外網(wǎng)IP地址
strcpy( ServerIP, '222.212.15.128' );
// 此處填寫通過(guò)實(shí)驗(yàn)室的網(wǎng)關(guān)路由器為實(shí)驗(yàn)用PC機(jī)分配的端口號(hào)
TCPClntManager.AddTCPClientObject( ServerIP, 7051 );

數(shù)據(jù)處理分別在串口數(shù)據(jù)處理線程ReceiveThreadFunc和TCP數(shù)據(jù)處理線程SocketThreadFunc中進(jìn)行。

串口部分:

// 聲明外部變量TCPClntManager類
extern class CTCPClientManager TCPClntManager;

int CSerial::ReceiveThreadFunc(void* lparam)
{
// 得到CSerial實(shí)例指針
CSerial *pSer = (CSerial*)lparam;
.
.
.
if (ret > 0)
{
// 判斷是否讀事件
if (FD_ISSET(pSer->m_fd,&fdRead))
{
// data available, so get it!
pSer->m_DatLen = read( pSer->m_fd, pSer->DatBuf, 100 );
// 接收串口數(shù)據(jù)處理函數(shù)
if( pSer->m_DatLen > 0 )
{
pSer->PackagePro( pSer->DatBuf, pSer->m_DatLen );
}
// 處理完畢
}
}
}

// 接收串口數(shù)據(jù)處理函數(shù)
int CSerial::PackagePro( char* Buf, int len )
{
// 將接收的數(shù)據(jù)發(fā)送至TCP服務(wù)器
CTCPClient* pTCPClnt;
Buf[len] = 0;
// 檢測(cè)TCP連接是否打開(kāi)
if( TCPClntManager.m_TCPClientInfo[0].ConnState == csOPEN )
{
pTCPClnt = (CTCPClient*)TCPClntManager.m_TCPClientInfo[0].pTCPClient;
// 調(diào)用CTCPClient類的發(fā)送函數(shù)將串口接收到的數(shù)據(jù)發(fā)送到TCP服務(wù)器
pTCPClnt->SendData( Buf, len );
}
return 1;
}

TCP部分:

// 聲明外部變量CSerial類
extern class CSerial m_Serial;

// TCP數(shù)據(jù)處理線程
int CTCPClient::SocketThreadFunc( void* lparam )
{
CTCPClient *pSocket;
// 得到CTCPClient實(shí)例指針
pSocket = (CTCPClient*)lparam;
.
.
.
if (ret > 0)
{
.
.
.
else
{
// 對(duì)接收的數(shù)據(jù)進(jìn)行處理
pSocket->RecvBuf[pSocket->m_nRecvLen] = 0;
// printf( 'RCV:%s\n', pSocket->RecvBuf);
// 調(diào)用CSerial類的發(fā)送函數(shù)將GPRS接收到的數(shù)據(jù)發(fā)送到串口調(diào)試助手
m_Serial.WritePort( pSocket->RecvBuf, pSocket->m_nRecvLen );
// pSocket->SendData( pSocket->RecvBuf, pSocket->m_nRecvLen );
// 處理完畢
}
}
}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11324

    瀏覽量

    209949
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6086

    瀏覽量

    35475
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    飛騰助力首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿落幕

    近日,由中國(guó)教育技術(shù)協(xié)會(huì)主辦,教育部教育管理信息中心教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國(guó)電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信創(chuàng)工委會(huì)支持,北京航空航天
    的頭像 發(fā)表于 12-24 09:57 ?164次閱讀

    有方科技參編的信息技術(shù)團(tuán)體標(biāo)準(zhǔn)發(fā)布

    近日,有方科技參編的《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第1部分:企業(yè)背景評(píng)價(jià)》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第2部分:技術(shù)掌控評(píng)價(jià)》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第
    的頭像 發(fā)表于 12-23 10:44 ?179次閱讀

    龍芯中科助力2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦

    近日,2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽在北京航空航天大學(xué)成功舉辦。本次大賽由中國(guó)教育技術(shù)協(xié)會(huì)主辦,教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國(guó)電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信
    的頭像 發(fā)表于 12-19 17:02 ?258次閱讀

    深控信息技術(shù)公司:不需要點(diǎn)表的工業(yè)網(wǎng)關(guān)數(shù)據(jù)采集方案

    深控信息技術(shù)公司的 “不需要點(diǎn)表的工業(yè)網(wǎng)關(guān)” 數(shù)據(jù)采集方案,顛覆了傳統(tǒng)依賴點(diǎn)表進(jìn)行數(shù)據(jù)采集的模式。傳統(tǒng)方式往往需要大量的人力和時(shí)間去配置點(diǎn)表,且在面對(duì)復(fù)雜多變的工業(yè)環(huán)境和設(shè)備時(shí),容易出現(xiàn)錯(cuò)誤和兼容性
    的頭像 發(fā)表于 12-16 15:29 ?179次閱讀
    深控<b class='flag-5'>信息技術(shù)</b>公司:不需要點(diǎn)表的工業(yè)網(wǎng)關(guān)<b class='flag-5'>數(shù)據(jù)</b>采集方案

    中科創(chuàng)達(dá)榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達(dá)憑借非凡的技術(shù)實(shí)力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務(wù)競(jìng)爭(zhēng)力百?gòu)?qiáng)企業(yè)”以及“2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?517次閱讀

    創(chuàng)國(guó)產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀

    創(chuàng),是信息技術(shù)應(yīng)用創(chuàng)新產(chǎn)業(yè)的簡(jiǎn)稱,于2016年“信創(chuàng)工委會(huì)”(信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì))提出,目的就是要推動(dòng)我們國(guó)內(nèi)軟硬件關(guān)鍵技術(shù)的研發(fā)
    的頭像 發(fā)表于 09-21 16:15 ?448次閱讀

    物聯(lián)網(wǎng)行業(yè)中透明傳輸詳解以及如何實(shí)現(xiàn)

    一 概述 TCP透?jìng)鞴δ苁且环N數(shù)據(jù)傳輸技術(shù),它允許在兩個(gè)TCP連接之間實(shí)現(xiàn)數(shù)據(jù)的無(wú)縫傳輸,保持原始連接的狀態(tài)和數(shù)據(jù)完整性。通過(guò)透?jìng)?,中間的服
    的頭像 發(fā)表于 09-20 16:07 ?1462次閱讀
    物聯(lián)網(wǎng)行業(yè)中<b class='flag-5'>透明</b><b class='flag-5'>傳輸</b>詳解以及如何實(shí)現(xiàn)

    加速鯤鵬落地!拓維信息創(chuàng)遷移工具榮獲鯤鵬原生開(kāi)發(fā)技術(shù)認(rèn)證

    認(rèn)證。圖/拓維·數(shù)據(jù)庫(kù)適配中間件取得鯤鵬原生開(kāi)發(fā)N認(rèn)證在數(shù)字化時(shí)代的大潮中,信創(chuàng)戰(zhàn)略作為國(guó)家推動(dòng)信息技術(shù)應(yīng)用創(chuàng)新、保障信息安全與自主可控的關(guān)鍵舉措,其重要性日益凸顯
    的頭像 發(fā)表于 09-10 08:03 ?471次閱讀
    加速鯤鵬落地!拓維<b class='flag-5'>信息</b>信<b class='flag-5'>創(chuàng)</b>遷移工具榮獲鯤鵬原生開(kāi)發(fā)<b class='flag-5'>技術(shù)</b>認(rèn)證

    梯度科技入選2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案名單

    日前,工業(yè)和信息化部網(wǎng)絡(luò)安全產(chǎn)業(yè)發(fā)展中心(工業(yè)和信息化部信息中心)在天津舉辦2024信息技術(shù)應(yīng)用創(chuàng)新發(fā)展大會(huì)暨解決方案應(yīng)用推廣大會(huì)。會(huì)上正式公布了2023年
    的頭像 發(fā)表于 09-09 16:29 ?458次閱讀

    GPRS抄表技術(shù)是什么?

    1.GPRS抄表技術(shù)概述GPRS(GeneralPacketRadioService)抄表是一種基于移動(dòng)通信網(wǎng)絡(luò)的遠(yuǎn)程抄表技術(shù),它利用GPRS
    的頭像 發(fā)表于 06-17 16:11 ?465次閱讀
    <b class='flag-5'>GPRS</b>抄表<b class='flag-5'>技術(shù)</b>是什么?

    無(wú)線模塊透明傳輸原理及過(guò)程解析

    技術(shù)和機(jī)制來(lái)實(shí)現(xiàn)的。 無(wú)線模塊透明傳輸的原理主要基于串口數(shù)據(jù)透明
    的頭像 發(fā)表于 04-30 16:58 ?695次閱讀

    基于物聯(lián)網(wǎng)、大數(shù)據(jù)、云計(jì)算等現(xiàn)代信息技術(shù)高速公路智慧消防平臺(tái)解決方案

    安科瑞 程瑜 系統(tǒng)簡(jiǎn)介 1、概述 智慧消防云平臺(tái)基于物聯(lián)網(wǎng)、大數(shù)據(jù)、云計(jì)算等現(xiàn)代信息技術(shù),將分散的火災(zāi)自動(dòng)報(bào)警設(shè)備、電氣火災(zāi)監(jiān)控設(shè)備、智慧煙感探測(cè)器、智慧消防用水等設(shè)備連接形成網(wǎng)絡(luò),并對(duì)這些設(shè)備
    的頭像 發(fā)表于 03-15 14:20 ?452次閱讀
    基于物聯(lián)網(wǎng)、大<b class='flag-5'>數(shù)據(jù)</b>、云計(jì)算等現(xiàn)代<b class='flag-5'>信息技術(shù)</b>高速公路智慧消防平臺(tái)解決方案

    什么是串口 串口傳輸和adc的關(guān)系及區(qū)別

    串口通信中,數(shù)據(jù)以位的形式逐個(gè)傳輸,一般采用異步通信方式,即不需要時(shí)鐘信號(hào)來(lái)同步數(shù)據(jù)傳輸。在每個(gè)字符的開(kāi)頭和結(jié)尾會(huì)有起始位和停止位,用于標(biāo)識(shí)數(shù)據(jù)
    的頭像 發(fā)表于 03-12 17:32 ?1703次閱讀

    龍芯中科三項(xiàng)信創(chuàng)方案入圍工信部2023年信息技術(shù)應(yīng)用創(chuàng)新應(yīng)用示范案例名單

    近日,工業(yè)和信息化部通報(bào)了2023年信息技術(shù)應(yīng)用創(chuàng)新解決方案征集遴選結(jié)果,本次共評(píng)選出典型解決方案173個(gè)、應(yīng)用示范案例83個(gè)、單項(xiàng)創(chuàng)新案例64個(gè)。
    的頭像 發(fā)表于 03-07 16:45 ?975次閱讀
    龍芯中科三項(xiàng)信<b class='flag-5'>創(chuàng)</b>方案入圍工信部2023年<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新應(yīng)用示范案例名單

    什么是串口 串口無(wú)法傳輸數(shù)據(jù)的原因

      串口的出現(xiàn)可以追溯到1980年前后,當(dāng)時(shí)的數(shù)據(jù)傳輸率大約在115kbps至230kbps之間。初期,串口主要用于連接計(jì)算機(jī)的外設(shè),如鼠標(biāo)、外置Modem、老式攝像頭和寫字板等設(shè)備。
    的頭像 發(fā)表于 03-01 16:28 ?1w次閱讀
    什么是<b class='flag-5'>串口</b> <b class='flag-5'>串口</b>無(wú)法<b class='flag-5'>傳輸</b><b class='flag-5'>數(shù)據(jù)</b>的原因