中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 利用VB 6.0實(shí)現(xiàn)PC機(jī)與DSP之間的串行數(shù)據(jù)通信

        利用VB 6.0實(shí)現(xiàn)PC機(jī)與DSP之間的串行數(shù)據(jù)通信

        作者: 時(shí)間:2001-09-11 來源: 收藏

        在工業(yè)控制領(lǐng)域,往往需要由一臺主機(jī)去控制多臺從機(jī)或多個(gè)智能儀器;當(dāng)上位機(jī)和下位機(jī)之間距離較遠(yuǎn)(主機(jī)遠(yuǎn)離工業(yè)控制現(xiàn)場)時(shí),就避免不了要進(jìn)行串行數(shù)據(jù)通信。上位機(jī)一般是PC機(jī),這樣可充分利用PC機(jī)的資源,使得在智能儀器上難以解決的諸如曲線顯示、數(shù)值運(yùn)算等在PC上得以實(shí)現(xiàn)。在PC機(jī)上編寫串行通信程序至少有三種方法:利用匯編語言,C語言和Visual系列的通信控件(MSComm)。直接用匯編語言編程,要求程序員具備相當(dāng)?shù)挠布R,對可編程串行通信接口芯片的內(nèi)部寄存器定義、工作方式、指令字等相關(guān)的內(nèi)容必須相當(dāng)熟悉;C語言雖然提供了直接訪問串口的函數(shù),但還是比較麻煩;Visual系列的通信控件(MSComm控件)卻使我們能夠用少量的代碼,輕松高效地完成任務(wù)。而TMS320F243數(shù)字信號處理器是德州儀器公司(TI24X系列專為數(shù)字馬達(dá)控制而設(shè)計(jì)的高性能16位定點(diǎn)DSP,對其串行通信接口模塊進(jìn)行編程是相當(dāng)方便的。

        本文引用地址:http://www.antipu.com.cn/article/2805.htm

        TMS320F243與其它微處理器相比具有下列性能:(1)指令周期為50ns,且大多數(shù)指令為單周期;(2)面向電機(jī)控制的事件管理模塊;(3)10A/D轉(zhuǎn)換器;(4)串行通信接口(SCI)和串行外設(shè)接口(SPI);(5)看門狗(WD)和實(shí)時(shí)中斷定時(shí)器(RTI);(6)內(nèi)嵌CAN控制器。

        串行通信接口模塊(SCI)的所有寄存器都是8位的,它支持在CPU和其它使用標(biāo)準(zhǔn)不歸零制(NRE)格式的異步外設(shè)之間進(jìn)行串行數(shù)據(jù)通信。串行通信接口(SCI)的接收器和發(fā)送器都是雙緩沖的,并且各自都有獨(dú)立的使能位和中斷位。二者都可以獨(dú)立地或同時(shí)工作于全雙工模式。為了保證數(shù)據(jù)接收的正確性,串行通信接口對接收的信號進(jìn)行間斷檢測、奇偶校驗(yàn)、超時(shí)和幀錯(cuò)誤檢測,通過一個(gè)16位的波特率選擇寄存器,可以選擇 65000個(gè)不同的波特率。串行通信控件寄存器的符號、名稱和描述見表1。

        SCI有兩個(gè)多處理器協(xié)議--空閑線(idle-time)多處理器模式和地址位多處理器模式。這些協(xié)議允許在多處理器之間進(jìn)行有效數(shù)據(jù)傳輸。TMS320F243在上述兩種模式下的通信格式分別如圖1所示:

        Visual Basic串口通信由于有Windows程序的支持,而變的極為方便,它將串口設(shè)備當(dāng)作一個(gè)目標(biāo)封裝起來,容易操作,按下列步驟可以添加MSComm控件:

        啟動(dòng)VB6.0Project菜單下單擊Components選項(xiàng),算選擇Microsoft Comm Control 6.0控件,這時(shí)在工具欄中會出現(xiàn)電話機(jī)圖標(biāo),將其拖放到窗體上,單擊鼠標(biāo)右鍵,就會出現(xiàn)串口屬性對話框,其主要屬性有:

        CommPort屬性和Settings屬性等11種屬性。

        MsComm控件提供了兩種處理通信問題的方法:事件驅(qū)動(dòng)(EventDriven)方法和查詢方法。最基本的通信事件有:comEvSend(在輸出緩沖區(qū)有比Sthreshold數(shù)少的字符。)comEvReceive(收到Rthreshold個(gè)字符),該事件將持續(xù)產(chǎn)生,直到用Input屬性從接收緩沖區(qū)中讀取并刪除字符。

        通信協(xié)議包括:

        (1) 字符傳輸格式:波特率(BaudRate=9600b/s),無奇偶校驗(yàn),8位數(shù)據(jù)位,1位停止位。

        (2) 數(shù)據(jù)幀格式如下表:

        命令字 幀長度 字節(jié)串 結(jié)束符

        其中幀長度=字節(jié)串長度+2,結(jié)束符=0FFh。

        命令字對應(yīng)著相應(yīng)的操作:

        命令字01對應(yīng)PC機(jī)發(fā)送設(shè)置值

        命令字02對應(yīng)DSP接收設(shè)置值后,回發(fā)至PC

        命令字03對應(yīng)PC機(jī)發(fā)送正弦波形的幅度和頻率

        PC機(jī)和DSP均采用異步通信方式,且DSP采用空閑線喚醒模式。PC機(jī)采用事件驅(qū)動(dòng)方式接收數(shù)據(jù),DSP采用查詢法發(fā)送數(shù)據(jù),而用中斷法接收數(shù)據(jù)。

        MSComm控件的初始化代碼如下:

        MSComm. Commport=2

        MSComm. Settings="9600,n,8,1"

        MSComm.Rthreshold=1

        MSComm.Sthreshold=0 '不觸發(fā)ComEvSend事件

        MSComm.InputLen=0

        MSComm.InBufferCount=0

        MSComm.OutBufferCount=0

        MSComm.InputMode= comInputModeBinary

        If MSComm.PortOpen=False Then

        MSComm.PortOpen=True

        End If

        DSP程序流程圖如圖2所示:

        本文對在VB下利用MSComm控件實(shí)現(xiàn)PC機(jī)與TMS320F243之間串行數(shù)據(jù)通信的方法進(jìn)行了探討,所有程序都經(jīng)調(diào)試通過,具有一定的參考價(jià)值。相信對讀者開發(fā)TI公司的DSP串行數(shù)據(jù)通信程序會有一些提示和幫助?!?/font>

         

        參考文獻(xiàn)

        1《PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù)》-李朝青

        2 《在VB下智能儀器和PC機(jī)之間的數(shù)值通信》-張正華等



        關(guān)鍵詞:

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉