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

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

3天內不再提示

如何利用Lab Windows/CVI實現(xiàn)PC與DSP的串行通信功能

電子設計 ? 作者:電子設計 ? 2018-08-30 10:11 ? 次閱讀

0 引言

隨著數字信號處理理論及微電子技術的高速發(fā)展,數字信號處理器(DSP)已廣泛應用于各個控制領域。而在控制系統(tǒng)中,通常會利用PC機與DSP之間的通信來對系統(tǒng)各個狀態(tài)/參數進行監(jiān)控。這種方法既利用了DSP功耗低、價格相對便宜、功能強大、抗干擾能力強、適宜于分布現(xiàn)場等優(yōu)點,同時又結合了PC機的軟硬件資源豐富、管理功能強大、人機界面友好、操控平臺穩(wěn)定可靠、數據通信方便快捷等系統(tǒng)功能優(yōu)勢。為此,本文擬通過使用比較廣泛的RS-232-C接口標準來研究PC與TMS320F2812 DSP之間的異步串行通信。

1 硬件設計

這里采用最簡單的三線連接方法,即PC機與DSP的發(fā)送、接收端彼此交叉連接,地線對應連接的方法。另外,由于DSP的串行通信接口SCI的兩個外部引腳SCITXD和SCIRXD的信號為TTL電平,與RS-232-C標準邏輯電平不一致,因此,要進行信號電平轉換后才能連接到PC機的串口接頭DB9,圖1所示是其硬件連接電路,其中電平轉換選用MAX3232芯片和若干電容來實現(xiàn),使用時只用其中的一對收/發(fā)單元。

2 軟件設計

2.1 通信協(xié)議

本設計將通信的幀格式設置為1個起始位,8個數據位,無奇偶校驗位,1個停止位。圖2所示為其數據幀格式,其傳輸波特率為9600 bps,采用全雙工通信方法。

PC機發(fā)送數據包的格式是:包頭+功能碼+參數碼+數據內容+校驗和,本設計分別設置它們占1、2、2、4、4個字節(jié)。其中包頭是一個數據包開始的標志,這里設置為字符’~’;功能碼表示本次通信要完成的操作,其中”01”表示向DSP發(fā)送參數,”02”表示讓DSP回傳數據;參數碼表示通信傳送的數據類別,”01”表示要傳送P參數,”02”表示要傳送I參數,”03”表示要傳送D參數。假如通過PC機來設置DSP中數字PID控制程序的參數P為15.20,可以設定數據的量綱為1:100,那么就應當發(fā)送15.20×100=1520=05F0H,即依次發(fā)送字符’0’=30H、’5’=35H、’F’=46H、’0’=30H;且在前面發(fā)送的字符串為”~010105F0”。校驗和的計算是把從功能碼到數據內容己經轉換為ASCII碼的全部字節(jié)連續(xù)累加,其值為7EH+30H+31H+30H+31H+30H+35H+46H+30H=021BH,所以,PC向DSP發(fā)送完整的數據包為字符串”~010105F0021B”,其格式如圖3所示。

DSP上傳電流、電壓、頻率等實時數據的數據包格式與圖3類似,但它可以不使用功能碼或參數碼。如頻率數據包的包頭采用字符’*’,電流數據包的包頭采用字符’#’,以示區(qū)別即可。

2.2 上位機PC端程序

PC機主要完成三部分工作:一是對從機進行控制(比如修改參數),二是對從機采集的數據進行處理和數值計算,三是向用戶提供友好、美觀的儀器界面。以上功能均可依靠軟件實現(xiàn)。上位機軟件既可以使用Visual C++、VisualBasic等通用的開發(fā)工具,也可以使用LabWin-dows/CVI、LabView等專用于計算機測控領域的虛擬儀器軟件開發(fā)平臺。LabWindows/CVI是NI公司開發(fā)的32位、以ANSI C為核心的交互式虛擬儀器開發(fā)環(huán)境,它將功能強大的C語言與測試技術相結合,具有靈活的交互式編程方法和豐富的庫函數,可為開發(fā)人員建立監(jiān)測、自動測試、數據采集、過程監(jiān)控等系統(tǒng)提供理想的軟件開發(fā)環(huán)境,是實現(xiàn)虛擬儀器及網絡化儀器的快速途徑。由于其簡單易學,故可大大縮短開發(fā)周期。LabWindows/CVI具有專門用于RS-232串行通信的函數庫,主要包括:串行口打開/關閉函數(OpenCom/OpenComConfig和CloseCom)、串行口輸入/輸出函數(ComRd、ComRdByte、ComWrt、ComWrtByte)、串行口控制函數(FlushInQ、FlushOutQ)、串行口狀態(tài)查詢函數(GetInQLen、GetOutQLen)、串行口事件處理函數(InstallCom-Callback)等5大類。以下是程序部分代碼:

主函數:

PC機發(fā)送程序:




PC機要能向DSP發(fā)送控制命令,比如開機,關機,修改參數等,下面以修改PID控制參數P為例。

2.3 下位機DSP程序

DSP的軟件開發(fā)可利用集成開發(fā)環(huán)境CCS3.1(Code Composer Studio),并采用C語言進行編程。利用DSP的SCI模塊實現(xiàn)串行通信的主程序流程圖如圖4所示。DSP的串行通信程序設計可采用查詢法或中斷法來進行數據的收發(fā),這里采用中斷方式接收數據,而用查詢方式發(fā)送數據。DSP收到PC機發(fā)送來的數據時,便轉入相應的中斷子程序,其中斷服務子程序流程如圖5所示。其串口SCI初始化配置如下:


如何利用Lab Windows/CVI實現(xiàn)PC與DSP的串行通信功能?

void SCI_Init(void)

{

SciaRegs.SCICCR.all=0x0007;//字符長度8位

SciaRegs.SCICTL1.all=0x0003;//使能發(fā)送和接收

SciaRegs.SCICTL2.all=0x0002; //使能接收中斷,禁止發(fā)送中斷

SciaRegs.SCIHBAUD=0x00;//置波特率高8位

SciaRegs.SCIHBAUD=0xF3;//置波特率低8位

SciaRegs.SCICTL1.all=0x23;//使SCI退出復位

}

DSP收到字符串”~010105F0019D”之后,首先進行和校驗。如果正確,則根據功能碼和參數碼判斷PC機發(fā)送的是否是修改參數P的命令。然后提取數據”05F0'’,將其轉換為十進制數1520,再除以100即得到要設置的P值15.20;如果和校驗出錯,則要求主機重發(fā)。若PC機發(fā)送的是上傳數據的命令,則將發(fā)送標志變量send_flag置1,這樣,在主循環(huán)中,經過判斷后,便可向PC機發(fā)送數據。

3 結束語

本文利用LabWindows/CVI開發(fā)平臺編寫了上位機PC程序,同時利用CCS3.1開發(fā)環(huán)境編寫下位機DSP程序,然后通過RS232總線進行串行通信。利用這種方法設計的PC機與DSP的串行通信系統(tǒng)具有硬件結構簡單、成本低、實現(xiàn)容易等特點,并具有良好的可移植性和可擴展性,能夠很好地滿足PC與DSP的通信需求。


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

    關注

    552

    文章

    7921

    瀏覽量

    347652
  • PC
    PC
    +關注

    關注

    9

    文章

    2049

    瀏覽量

    153821
  • 串行通信
    +關注

    關注

    4

    文章

    561

    瀏覽量

    35196
收藏 人收藏

    評論

    相關推薦

    UART通信協(xié)議介紹和數據傳輸工作流程

    UART是一種通用串行數據總線,用于異步通信。該總線雙向通信,可實現(xiàn)全雙工傳輸和接收。UART通常用來實現(xiàn)
    的頭像 發(fā)表于 10-24 14:20 ?78次閱讀
    UART<b class='flag-5'>通信</b>協(xié)議介紹和數據傳輸工作流程

    如何實現(xiàn)51單片機與PC機的串行通信

    51單片機與PC機的串行通信是一種常見的通信方式,它允許單片機通過串行接口與PC機進行數據交換。
    的頭像 發(fā)表于 10-21 11:35 ?109次閱讀

    利用Tl的智能高端開關實現(xiàn)SPI通信

    電子發(fā)燒友網站提供《利用Tl的智能高端開關實現(xiàn)SPI通信.pdf》資料免費下載
    發(fā)表于 09-24 09:28 ?0次下載
    <b class='flag-5'>利用</b>Tl的智能高端開關<b class='flag-5'>實現(xiàn)</b>SPI<b class='flag-5'>通信</b>

    如何實現(xiàn)ESP32-S2 CDC與PC端的通信?

    CDC數據包完全沒有。 目前S2 USB OTG的資料實在太少,不知道到底要如何實現(xiàn)S2 CDC與PC端的通信
    發(fā)表于 06-25 08:29

    使用USBUART組件與主機PC通信,如果在串行端口打開的情況下終止固件,主機端為什么會報錯?

    我正在使用 USBUART 組件與主機 PC 通信,我一直在尋找某種機制來關閉 MCU 端的串行端口,或者至少通知主機我將關閉端口。 我遇到過這樣一個問題:如果在串行端口打開的情況下終
    發(fā)表于 06-03 08:41

    兆易創(chuàng)新推出PC指紋識別解決方案,帶來安全便捷新體驗

    (Match-on-Chip)和GSL6150H0 MoH(Match-on-Host)。方案基于先進的生物識別技術,通過便捷的指紋讀取功能,幫助用戶快速、安全地登錄Windows PC設備。其中,GSL6186
    的頭像 發(fā)表于 05-22 11:01 ?372次閱讀

    STM32F207利用DMA功能實現(xiàn)串口1與串口6之間雙向通信嗎?

    請問一下大家,STM32F207利用DMA功能實現(xiàn)串口1與串口6之間雙向通信么?建立通信橋梁不需要CPU參與。
    發(fā)表于 04-29 08:53

    數字信號處理DSP庫文件的使用方法和功能實現(xiàn)

    本文首先介紹數字信號處理(DSP),是指將連續(xù)的模擬信號轉換為不連續(xù)、離散的數字信號并進行處理以提取所需的信號(信息)的過程。然后通過一個簡單的Lab來說明DSP庫文件的使用方法和功能
    的頭像 發(fā)表于 04-03 14:09 ?2392次閱讀
    數字信號處理<b class='flag-5'>DSP</b>庫文件的使用方法和<b class='flag-5'>功能</b><b class='flag-5'>實現(xiàn)</b>

    常見串行通信協(xié)議 串行通信和并行通信的區(qū)別

    串行通信是一種通過單個傳輸線按照順序傳送數據的通信方式。在串行通信中,每個數據位按照順序依次傳輸,一個接一個地發(fā)送到目標設備。
    的頭像 發(fā)表于 03-05 16:38 ?1106次閱讀
    常見<b class='flag-5'>串行</b><b class='flag-5'>通信</b>協(xié)議 <b class='flag-5'>串行</b><b class='flag-5'>通信</b>和并行<b class='flag-5'>通信</b>的區(qū)別

    微軟推出Windows 11 PC兼容安卓設備攝像頭功能

    用戶在運行Windows 11操作系統(tǒng)的PC端,可以借助Android智能手機和平板電腦的攝像頭功能來獲取更好的圖像質量和更便捷的使用感受。此項功能使得用戶能實時切換前后置攝像頭,在網
    的頭像 發(fā)表于 03-01 09:54 ?435次閱讀

    面向高速串行通信的工程設計實現(xiàn)

    在高速串行通信系統(tǒng)中,差分阻抗的精確控制是實現(xiàn)信號完整性和降低電磁干擾的關鍵因素,對電子工程師來說,理想中的差分阻抗是100Ω,但由于實際布線原因,如接地屏蔽的布局,很難實現(xiàn)。
    的頭像 發(fā)表于 02-22 09:08 ?421次閱讀

    英飛凌推出CYUSBS236 USB轉串行通信(雙通道)開發(fā)套件

    英飛凌科技(Infineon Technologies)近日宣布推出全新的CYUSBS236 USB 轉串行通信(雙通道)開發(fā)套件。該開發(fā)套件基于英飛凌的CY7C65215 USB 串行橋控制器,為開發(fā)者提供了快速、簡便地
    的頭像 發(fā)表于 01-24 17:12 ?769次閱讀

    串行通信和以太網通信,該怎么選才好?

    串行通信和以太網通信都通過有線傳輸數據,但各自有不同的用途。串行通信和以太網通信的主要區(qū)別在于:
    的頭像 發(fā)表于 12-22 08:20 ?968次閱讀
    <b class='flag-5'>串行</b><b class='flag-5'>通信</b>和以太網<b class='flag-5'>通信</b>,該怎么選才好?

    使用ad2s1210edz與28335dsp串行通信,運行dsp測試test point,sclk和rdi均測不到輸入信號是為什么?

    各位朋友,小弟最近正在使用ad2s1210edz與ti的28335dsp串行通信,測電機轉子位置。 根據說明對link進行了配置,sample選擇了button switch,cs接低,rd接高
    發(fā)表于 12-21 07:31

    PC機與單片機多機實時通信的設計與實現(xiàn)

    電子發(fā)燒友網站提供《PC機與單片機多機實時通信的設計與實現(xiàn).pdf》資料免費下載
    發(fā)表于 10-31 09:55 ?3次下載
    <b class='flag-5'>PC</b>機與單片機多機實時<b class='flag-5'>通信</b>的設計與<b class='flag-5'>實現(xiàn)</b>