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

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

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

使用Delphi 7.0開發(fā)軟件和Moxa庫函數(shù)實現(xiàn)同步卡調(diào)試器的設(shè)計

電子設(shè)計 ? 來源:現(xiàn)代電子技術(shù) ? 作者:王錄選 , 蔡文齋 ? 2020-07-28 08:56 ? 次閱讀

1、 引 言

項目中多套測量設(shè)備相距較遠,通訊時外接同步調(diào)制解調(diào)器。在仿真執(zhí)行時往往條件不具備,聯(lián)試時較困難。監(jiān)控軟件本文不予討論,為了在聯(lián)試中能快速分離出通訊雙方的對錯,作者設(shè)計了這款調(diào)試器,另一個目的就是在無調(diào)制解調(diào)器時輔助開發(fā)人員快速開發(fā)出監(jiān)控軟件,該調(diào)試器可以仿真通信任意一方。設(shè)計目標為:調(diào)試器可以靈活定制通訊規(guī)程,設(shè)備端口一旦初始化完成。可以自動接收對方信息,允許十六進制顯示原碼,可以顯示接收次數(shù)、長度。己方發(fā)送時可以依字節(jié)形式或字符形式發(fā)送。如果是字節(jié)形式,允許定制任一字節(jié)內(nèi)容,允許定時發(fā)送,可以設(shè)定發(fā)送長度等。

2、 具體實現(xiàn)

根據(jù)這一需求,作者使用Delphi 7.0開發(fā)這款軟件。首先定制界面,該部分較簡單,略之。關(guān)鍵部分如下:設(shè)備初始化及I/O,十六進制顯示,十六進制輸入。為了做到通用性,作者重新改寫了Moxa的庫函數(shù),精簡為如下幾條函數(shù):

設(shè)備打開函數(shù);設(shè)備讀函數(shù);設(shè)備寫函數(shù);設(shè)備刷新函數(shù);設(shè)備關(guān)閉函數(shù)。

使用Delphi 7.0開發(fā)軟件和Moxa庫函數(shù)實現(xiàn)同步卡調(diào)試器的設(shè)計

設(shè)備打開是關(guān)鍵,該函數(shù)綜合了Moxa庫中的幾個函數(shù),規(guī)格定制以參數(shù)形式提供。主要代碼如下(注意Uses部分應(yīng)包含Moxa的Syncapi.bas庫):

HDLC通信是同步通信方式,CRC校驗是必須的,另一方面,在實際應(yīng)用中,通信雙方都要使用外時鐘,而開發(fā)階段一般使用內(nèi)時鐘,所以本初始化函數(shù)將時鐘方向作為參數(shù)設(shè)置。

十六進制顯示Delphi提供了BinToHex函數(shù),但這只顯示單個數(shù)值成十六進制形式。作者另編了一函數(shù),可以顯示一緩沖區(qū)內(nèi)容,并且以規(guī)范的形式顯示。例如:73 AB4D 5F。

十六進制輸入較麻煩,制作如下:在界面上定制一StringCrid組件,定制格子為2行1 024列,每個格子可以輸入2個字母大小,上一行在FormCreat()消息中填充為序號數(shù),下一行用于定制十六進翻顯示輸入。

(1) 定制該格子的KeyPress消息,用集合類檢查輸入該格子的是否是十六進制字符,如果不是,給出提示。

(2) 定制該格子的StringGridlSetEditText消息,判斷輸入字符串是否大于2,如果是,不予理睬。該方法保證輸入字符串是規(guī)范的十六進制形式,例1A 5F 4D 3401 7E。

3、 發(fā)送機制設(shè)計

發(fā)送設(shè)計為線程,該線程等待發(fā)送事件,該事件由用戶按鈕或定時消息觸發(fā),線程流程為:

Do While True Begin

判斷線程是否退出,如退出結(jié)束該線程;

如不退出,永遠等待發(fā)送事件,該事件設(shè)計為無名手工復(fù)位的簡單事件,事件置位由界面發(fā)送按鈕或定時期器觸發(fā);

如等到該事件,復(fù)位該事件,填寫發(fā)送緩沖內(nèi)容,調(diào)發(fā)送函數(shù),完成發(fā)送,發(fā)用戶消息告知前臺發(fā)送完成;

End;

4 、接收機制設(shè)計

接收亦設(shè)計為線程,該線程睡眠10 ms讀端口,如果讀不到或者讀錯誤,調(diào)陷阱代碼處理,如讀到發(fā)用戶消息給前臺,讀入緩沖傳給前臺緩沖供前臺顯示,顯示形式由界面決定(十六進制或字符)。

5、 用戶消息處理

前臺用戶消息為讀完成和寫完成消息,前臺用戶消息完成顯示或者存儲操作,根據(jù)界面選擇框確定顯示形式(char or byte),讀人次數(shù),讀入長度,是否要求永遠顯示(可以常時間監(jiān)視),是否要求存儲文件。

6 、其他設(shè)計部分

(1) 設(shè)計一編輯控件,可以輸入發(fā)送長度。

(2) 設(shè)計一無線電按鈕組,用于判斷是字符形式或字節(jié)形式輸入。

(3) 定制收、發(fā)字節(jié)長度,次數(shù)顯示,定制狀態(tài)條各種提示符等。

(4) 設(shè)計一發(fā)送按鈕,完成發(fā)送緩沖區(qū)填充,并調(diào)發(fā)送函數(shù)發(fā)送之。

(5) 設(shè)計一Timer組件,間隔可以定制,調(diào)發(fā)送按鈕完成定時發(fā)送。

(6) 設(shè)計該調(diào)試器的陷阱處理部分,處理可能的異常。如突發(fā)硬件異常事件、顯示、異常大數(shù)據(jù)處理等。

(7) 設(shè)計該調(diào)試器的接收信息存儲部分,允許將接收信息自動存儲為文件。

7、 結(jié) 語

作者開發(fā)的這個同步卡調(diào)試器在航天工程現(xiàn)場已多次使用,快速幫助通信雙方分離問題。文中給出了同步卡調(diào)試器的關(guān)鍵部分,由于他支持位級的輸入編輯,發(fā)送時序也可以選擇,所有的這一類項目都可以調(diào)試,在現(xiàn)場或任務(wù)階段為項目相關(guān)人員提供了有力支持。通信雙方均可受益。

責(zé)任編輯:gt

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

    關(guān)注

    69

    文章

    4989

    瀏覽量

    87833
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4344

    瀏覽量

    62813
  • 調(diào)試器
    +關(guān)注

    關(guān)注

    1

    文章

    306

    瀏覽量

    23784
收藏 人收藏

    評論

    相關(guān)推薦

    清華FPGA的開發(fā)軟件

    清華的FPGA除了官方提供的開發(fā)軟件,能用其它開發(fā)軟件進行開發(fā)嗎? 官方的開發(fā)軟件安裝,挺麻煩啊。
    發(fā)表于 06-23 12:25

    開發(fā)軟件

    一個好的開發(fā)軟件是一個好的開始,對于為電子領(lǐng)域來說,好的開發(fā)軟件更為至關(guān)重要;現(xiàn)在就給大家介紹幾款好的開發(fā)軟件,1,就是keil2.就是protues3.protel 99 se這三款開發(fā)軟件
    發(fā)表于 07-20 10:23

    庫函數(shù)開發(fā)軟件bug

    庫函數(shù)開發(fā)軟件bug:1.結(jié)構(gòu)體定義必須在前邊不然會報錯2.每個.c和.h文件最后必要要有空行3.項目編寫完之后必須先關(guān)閉再打開才能燒錄進去4.聲明函數(shù)如果沒有形參要寫void不然會出警告學(xué)習(xí)資料
    發(fā)表于 08-16 06:08

    AVR開發(fā)軟件大全

    AVR開發(fā)軟件大全
    發(fā)表于 01-16 11:33 ?3950次閱讀

    keil_c51庫函數(shù)手冊

    單片機開發(fā)軟件keil所攜帶庫函數(shù)介紹,工初學(xué)者使用。
    發(fā)表于 01-19 14:12 ?20次下載

    ADI DSP開發(fā)軟件的學(xué)習(xí)軟件

    ADI DSP開發(fā)軟件的學(xué)習(xí)軟件
    發(fā)表于 01-14 14:42 ?21次下載

    arm開發(fā)軟件使用教程

    arm開發(fā)軟件使用教程
    發(fā)表于 02-08 00:52 ?28次下載

    ZigBee開發(fā)軟件和驅(qū)動

    ZigBee開發(fā)軟件和驅(qū)動
    發(fā)表于 12-01 17:15 ?17次下載
    ZigBee<b class='flag-5'>開發(fā)軟件</b>和驅(qū)動

    Keil開發(fā)軟件和六種實用工具免費下載

    本文檔的主要內(nèi)容是Keil開發(fā)軟件和六種實用工具免費下載包括了:Keil(MDK)開發(fā)軟件,USB轉(zhuǎn)串口驅(qū)動-CH340,串口調(diào)試助手,串口下載軟件,攝像頭
    發(fā)表于 03-29 08:00 ?5次下載
    Keil<b class='flag-5'>開發(fā)軟件</b>和六種實用工具免費下載

    開發(fā)套件SnapSensor開發(fā)軟件

    開發(fā)套件SnapSensor開發(fā)軟件
    發(fā)表于 05-28 09:42 ?1次下載
    <b class='flag-5'>開發(fā)</b>套件SnapSensor<b class='flag-5'>開發(fā)軟件</b>

    嵌入式開發(fā)軟件中回調(diào)函數(shù)的使用

    在嵌入式開發(fā)軟件中回調(diào)函數(shù)是經(jīng)常接觸的一種軟件設(shè)計方法,像我們的事件處理機制基本上都會使用到回調(diào)函數(shù)。
    的頭像 發(fā)表于 04-29 08:57 ?2304次閱讀

    串口屏開發(fā)軟件VisualTFT_3.0.0.1176

    串口屏開發(fā)軟件VisualTFT_3.0.0.1176
    發(fā)表于 04-28 13:43 ?6次下載

    串口屏開發(fā)軟件VisualTFT_3.0.0.1137

    串口屏開發(fā)軟件VisualTFT_3.0.0.1137
    發(fā)表于 04-28 13:47 ?18次下載

    FP5217設(shè)計開發(fā)軟件

    電子發(fā)燒友網(wǎng)站提供《FP5217設(shè)計開發(fā)軟件.zip》資料免費下載
    發(fā)表于 11-08 23:14 ?16次下載

    FP7209設(shè)計開發(fā)軟件

    電子發(fā)燒友網(wǎng)站提供《FP7209設(shè)計開發(fā)軟件.zip》資料免費下載
    發(fā)表于 11-10 22:38 ?51次下載