DZ226多媒體中央控制器設(shè)置寫入程序上位機程序設(shè)計
DZ226多媒體中央控制器設(shè)置寫入程序上位機程序設(shè)計,dz226,多媒體,中央,控制器,設(shè)置,寫入,程序,上位,程序設(shè)計
I┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊摘 要多媒體中央控制器是用于多媒體教學(xué)設(shè)備集中控制的多媒體設(shè)備,能極大方便多媒體設(shè)備的使用,減少管理成本,節(jié)約能源。本設(shè)計為多媒體中央控制器設(shè)置寫入程序上位機程序設(shè)計,是對多媒體中央控制器控制投影機參數(shù)設(shè)置的一個系統(tǒng),其參數(shù)包括:時鐘時間、八段控制時間和使用投影機的開機碼、關(guān)機碼、RGB1、RGB2、Video、S-video 等,通過 RS-232 串行口與多媒體中央控制器進行通信。本軟件使用 Visual C++軟件進行開發(fā)程序,使用 MSComm 控件來開發(fā)串行口通信,并利用 windows 下串行通信編程的 ActiveX 控件進行串行接口收發(fā)數(shù)據(jù),利用 ClassWizard 定義 CMSComm 類控制對象,然后在對話框中添加控件并添加串行口事件消息處理函數(shù) OnComm(),打開串行口和設(shè)置串行口參數(shù)并發(fā)送數(shù)據(jù),在發(fā)送部分加入一個復(fù)選接鈕,用于選擇以文本形式或十六進制形式發(fā)送。 關(guān)鍵詞:投影機;Visual C++ 6.0;Mscomm 控件;串行口通訊II┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊AbstractMultimedia central controller is multimedia equipment which is used for multimedia teaching equipment centralized control. It can greatly facilitate the use of multimedia equipment ,reduce the cost of management and conserve energy. The design of the multimedia central controller installed into the PC procedural programming, the central controller multimedia projector parameter setting of a system whose parameters include : clock time, eight-time control and the use of the projector's startup code, shutdown code, RGB1, RGB2, Video, S-video and so on, through the RS-232 serial port with the central controller for multimedia communicationsThe software use Visual C + + software for development programming, use MSComm controls to develop serial communication, ActiveX controls of serial communication Programming in windows, and ClassWizard to definite CMSComm type control object. Then, add controls and Serial incident message processing function OnComm()in the dialog box. Open the serial port, set serial port parameters and send data. Adding a check received button in sending part to choose the sending form in text or hexadecimal.Keywords : projector; Visual C + + 6.0; Mscomm control; Serial Communication III┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊目 錄1 緒論 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????11.1 開發(fā)思想 ?????????????????????????????????????????????????????????????????????????????????????????????????????21.2 開發(fā)環(huán)境 ?????????????????????????????????????????????????????????????????????????????????????????????????????21.2.1 硬件環(huán)境 ????????????????????????????????????????????????????????????????????????????????????????????21.2.2 軟件環(huán)境 ????????????????????????????????????????????????????????????????????????????????????????????21.3 開發(fā)工具 ?????????????????????????????????????????????????????????????????????????????????????????????????????32 串口通訊 RS-232-C 詳解 ????????????????????????????????????????????????????????????????????????????????????????42.1 RS-232-C 概況 ????????????????????????????????????????????????????????????????????????????????????????????42.1.1 電氣特性 ????????????????????????????????????????????????????????????????????????????????????????????52.1.2 連接器的機械特性 ????????????????????????????????????????????????????????????????????????????62.1.3 RS-232C 的接口信號 ????????????????????????????????????????????????????????????????????????82.2 遠距離通信 ???????????????????????????????????????????????????????????????????????????????????????????????102.2.1 采用 Modem(DCE)和電話網(wǎng)通信時的信號連接 ??????????????????????????102.2.2 采用專用電話線通信 ??????????????????????????????????????????????????????????????????????112.3 近距離通信 ???????????????????????????????????????????????????????????????????????????????????????????????112.3.1 零 Modem 的最簡連線(3 線制) ????????????????????????????????????????????????122.3.2 零 Modem 標(biāo)準(zhǔn)連接 ????????????????????????????????????????????????????????????????????????133 VC Mscomm 控件應(yīng)用 ????????????????????????????????????????????????????????????????????????????????????????????153.1 Mscomm 控件 ???????????????????????????????????????????????????????????????????????????????????????????153.1.1 MSComm 控件兩種處理通信的方式 ?????????????????????????????????????????????163.1.2 MSComm 控件的常用屬性 ????????????????????????????????????????????????????????????163.2 MSComm 控件實現(xiàn)通信[VC] ?????????????????????????????????????????????????????????????????233.2.1 串口通信基礎(chǔ)知識 ??????????????????????????????????????????????????????????????????????????233.2.2 使用 MSComm 控件 ????????????????????????????????????????????????????????????????????????254 系統(tǒng)實現(xiàn) ??????????????????????????????????????????????????????????????????????????????????????????????????????????????27IV┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊4.1 系統(tǒng)模塊 ???????????????????????????????????????????????????????????????????????????????????????????????????274.1.1 建立項目 ??????????????????????????????????????????????????????????????????????????????????????????274.1.2 在項目中插入 MSComm 控件 ????????????????????????????????????????????????????????274.1.3 利用 ClassWizard 定義 CMSComm 類控制對象 ??????????????????????????284.1.4 在對話框中添加控件 ??????????????????????????????????????????????????????????????????????284.1.5 添加串口事件消息處理函數(shù) OnComm()???????????????????????????????????????294.1.6 打開串口和設(shè)置串口參數(shù) ??????????????????????????????????????????????????????????????314.1.7 發(fā)送數(shù)據(jù) ??????????????????????????????????????????????????????????????????????????????????????????314.2 其它功能模塊 ???????????????????????????????????????????????????????????????????????????????????????????324.2.1 發(fā)送十六進制字符 ??????????????????????????????????????????????????????????????????????????324.2.2 在接收框中以十六進制顯示 ??????????????????????????????????????????????????????????354.2.3 如何設(shè)置自動發(fā)送 ??????????????????????????????????????????????????????????????????????????374.2.4 什么是 VARIANT 數(shù)據(jù)類型及如何使用 ??????????????????????????????????????385 系統(tǒng)調(diào)試 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????39結(jié) 論 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????40致 謝 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????41參 考 文 獻 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????42附錄 A ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????43附錄 B?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????58附錄 C?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????671┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊1 緒論中控系統(tǒng),作為現(xiàn)代 AV 系統(tǒng)的神經(jīng)控制系統(tǒng),是 AV 系統(tǒng)化、大型化、網(wǎng)絡(luò)化不可或缺的重要組成部分。一個 AV 系統(tǒng),不論其規(guī)模是大是小,也不論其設(shè)備多寡,沒有中控系統(tǒng)的存在就是效能很低的系統(tǒng)。有了中控系統(tǒng)的加入,AV 系統(tǒng)才具有“智力”水平,并且在一定程度上減少了管理和運作系統(tǒng)對人數(shù)的要求,同時也減輕了管理人員的工作強度。在多媒體中,視頻信號和音頻信號往往有多個輸入(例如:電腦、筆記本、展臺、VCD、DVD 等) ,在教學(xué)使用中,經(jīng)常需要進行信號切換,一個多媒體教室有多個教師使用,這給信號切換帶來不少問題,往往上一個老師使用一個信號,下一個老師用另一個信號,經(jīng)常導(dǎo)致沒有信號輸入而讓老師誤認(rèn)為設(shè)備有故障。本軟件的設(shè)計目的就是通過 RS—232 串口通信來設(shè)置多媒體中央控制器的參數(shù),包括開機碼、關(guān)機碼、投影機的串口碼等,并可以選擇以十六進制發(fā)送及接收。從而達到對多媒體設(shè)備進行開關(guān)機、視頻音頻信號切換等優(yōu)化控制,能較好的保護多媒體設(shè)備,提高設(shè)備使用壽命。本軟件運用的是 Visual C++ 語言,在 MSComm 控件的基礎(chǔ)上來實現(xiàn)的。本軟件功能強大,它主要是由一個主窗體對話框及為程序主體添加的 7 個控制類來完成。其中 CSerialApp 由 Appwizard 實現(xiàn);CSerialPortEx 負(fù)責(zé)實現(xiàn)底層串口通信功能;CConfigDlg 負(fù)責(zé)修改串口通信參數(shù);CSerialAppDlg 為程序的主控類,主界面、串口協(xié)議與程序邏輯均由該類實現(xiàn),它繼承自CExpandingDialog 類;CExpandingDialog 是 CDialog 的派生類,負(fù)責(zé)文件傳輸部分界面的顯示和隱藏;CShowWnd 和 CInputwnd 均為 CRichEdit 的派生類,分別負(fù)責(zé)雙方聊天信息(即短信息記錄)的顯示和發(fā)送短信息的輸入。本設(shè)計可以大大方便各用戶對投影機的使用,對多媒體中央控制器的發(fā)展起到了很大的作用。目前來講,國內(nèi)外的多媒體控制系統(tǒng)產(chǎn)品很多,被廣泛的應(yīng)用于多媒體教室、多功能會議廳、指揮控制中心、智能化家庭等。面對不同消費者的需求,產(chǎn)品的性能、價位的高低也有不同,畢竟這個領(lǐng)域在國內(nèi)外不是很成熟,還有許多亟待完善的地方,因此市場前景很是廣闊,應(yīng)用價值極高。2┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊1.1 開發(fā)思想在現(xiàn)有多媒體運行中,多媒體設(shè)備(例如:投影儀)的啟開或關(guān)閉是由手動遙控器完成,電源的開或關(guān)也是由人工操作完成。人工操作開啟或關(guān)閉電源是一件既費時又費力的事情,而且又不能及時按要求完成操作程序,在不及時開啟或關(guān)閉投影儀和多媒體系統(tǒng)電源時,會影響正常使用和造成相當(dāng)大的耗材損耗和能量損耗。本軟件的設(shè)計通過對通過 RS—232 串口通信來設(shè)置多媒體中央控制器的參數(shù),包括投影機的開機碼、關(guān)機碼、RGB1、RGB2、Video、S-video 等,并可以選擇以十六進制發(fā)送及接受。從而達到對多媒體設(shè)備進行開關(guān)機、視頻音頻信號切換等優(yōu)化控制,能較好的保護多媒體設(shè)備,提高設(shè)備使用壽命。1.2 開發(fā)環(huán)境1.2.1 硬件環(huán)境CPU:Pentiun Ⅲ 900 或以上(服務(wù)器)內(nèi)存:256MB 或以上(服務(wù)器)硬盤:2GB 以上(服務(wù)器)CPU:Pentiun 300(客戶機)內(nèi)存:64MB 或以上(客戶機)硬盤:200MB 以上(客戶機)顯示器:VGA 或更高1.2.2 軟件環(huán)境操作系統(tǒng):Windows Advance Server 2000 和 Windows XP 中文版調(diào)試系統(tǒng):串口調(diào)試系統(tǒng) V2.2開發(fā)平臺:Visual C++ 6.01.3 開發(fā)工具3┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊本程序設(shè)計主要使用了 Visual C++作為開發(fā)工具及對象控件技術(shù)MSComm, Visual C++自誕生以來,一直是 Windows 環(huán)境下最主要的應(yīng)用開發(fā)系統(tǒng)之一。Visual C++不僅是 C++語言的集成開發(fā)環(huán)境,而且與 Win32 緊密相連,所以,利用 Visual C++可以完成各種各樣的應(yīng)用程序的開發(fā),從底層軟件直到上層直接面向用戶的軟件。而且,Visual C++強大的調(diào)試功能也為大型復(fù)雜軟件的開發(fā)提供了有效的排錯手段。進入 90 年代以來,隨著多媒體技術(shù)和圖形圖像技術(shù)的不斷發(fā)展,可視化(Visual)技術(shù)得到廣泛的重視,越來越多的計算機專業(yè)人員和非專業(yè)人員都開始研究并應(yīng)用可視化技術(shù)。所謂可視化技術(shù),一般是指軟件開發(fā)階段的可視化和對計算機圖形技術(shù)和方法的應(yīng)用。軟件開發(fā)階段的可視化,即可視化編程。Visual C++是一個很好的可視化編程工具,使用 Visual C++環(huán)境開發(fā) Windows應(yīng)用程序大大縮短了開發(fā)時間,而且它的界面更友好,便于程序員操作。4┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊2 串口通訊 RS-232-C 詳解2.1 RS-232-C 概況串行通信接口標(biāo)準(zhǔn)經(jīng)過使用和發(fā)展,目前已經(jīng)有幾種。但都是在 RS-232標(biāo)準(zhǔn)的基礎(chǔ)上經(jīng)過改進而形成的。所以,以 RS-232C 為主來討論。RS-323C 標(biāo)準(zhǔn)是美國 EIA(電子工業(yè)聯(lián)合會)與 BELL 等公司一起開發(fā)的 1969 年公布的通信協(xié)議。它適合于數(shù)據(jù)傳輸速率在 0~20000b/s 范圍內(nèi)的通信。這個標(biāo)準(zhǔn)對串行通信接口的有關(guān)問題,如信號線功能、電器特性都作了明確規(guī)定。由于通行設(shè)備廠商都生產(chǎn)與 RS-232C 制式兼容的通信設(shè)備,因此,它作為一種標(biāo)準(zhǔn),目前已在微機通信接口中廣泛采用。在討論 RS-232C 接口標(biāo)準(zhǔn)的內(nèi)容之前,先說明兩點:首先,RS-232-C 標(biāo)準(zhǔn)最初是遠程通信連接數(shù)據(jù)終端設(shè)備 DTE(Data Terminal Equipment)與數(shù)據(jù)通信設(shè)備 DCE(Data Communication Equipment)而制定的。因此這個標(biāo)準(zhǔn)的制定,并未考慮計算機系統(tǒng)的應(yīng)用要求。但目前它又廣泛地被借來用于計算機(更準(zhǔn)確的說,是計算機接口)與終端或外設(shè)之間的近端連接標(biāo)準(zhǔn)。顯然,這個標(biāo)準(zhǔn)的有些規(guī)定及和計算機系統(tǒng)是不一致的,甚至是相矛盾的。有了對這種背景的了解,我們對 RS-232C 標(biāo)準(zhǔn)與計算機不兼容的地方就不難理解了其次,RS-232C 標(biāo)準(zhǔn)中所提到的 “發(fā)送” 和“接收”,都是站在 DTE 立場上,而不是站在 DCE 的立場來定義的。由于在計算機系統(tǒng)中,往往是 CPU 和 I/O設(shè)備之間傳送信息,兩者都是 DTE,因此雙方都能發(fā)送和接收。 RS-232C 標(biāo)準(zhǔn)(協(xié)議)的全稱是 EIA-RS-232C 標(biāo)準(zhǔn),其中 EIA(Electronic Industry Association)代表美國電子工業(yè)協(xié)會,RS(ecommeded standard)代表推薦標(biāo)準(zhǔn),232 是標(biāo)識號,C 代表 RS232 的最新一次修改(1969) ,在這之前,有 RS232B、RS232A。 。它規(guī)定連接電纜和機械、電氣特性、信號功能及傳送過程。常用物理標(biāo)準(zhǔn)還有有 EIARS-232-C、EIARS-422-A、 EIARS-423A、EIARS-485。這里只介紹 EIARS-232-C(簡稱232,RS232) 。 例如,目前在 IBM PC 機上的 COM1、COM2 接口,就是 RS-232C 接口。 5┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊2.1.1 電氣特性 EIA-RS-232C 對電器特性、邏輯電平和各種信號線功能都作了規(guī)定。在 TxD 和 RxD 上:邏輯 1(MARK)=-3V~-15V邏輯 0(SPACE)=+3~+15V在 RTS、CTS、DSR、DTR 和 DCD 等控制線上:信號有效(接通,ON 狀態(tài),正電壓)=+3V ~+15V信號無效(斷開,OFF 狀態(tài),負(fù)電壓) = -3V~-15V圖 2.1 1488 和 1489 的內(nèi)部結(jié)構(gòu)和引腳圖以上規(guī)定說明了 RS-323C 標(biāo)準(zhǔn)對邏輯電平的定義。對于數(shù)據(jù)(信息碼):邏輯“1” (傳號)的電平低于-3V,邏輯“0”(空號)的電平告語+3V ;對于控制信號;接通狀態(tài)(ON)即信號有效的電平高于+3V ,斷開狀態(tài)(OFF) 即信號無效的電平低于-3V,也就是當(dāng)傳輸電平的絕對值大于 3V 時,電路可以有效地檢查出來,介于-3~+3V 之間的電壓無意義,低于-15V 或高于+15V 的電壓也認(rèn)為無意義,因此,實際工作時,應(yīng)保證電平在±(3~15)V 之間。EIA-RS-232C 與 TTL 轉(zhuǎn)換:EIA-RS-232C 是用正負(fù)電壓來表示邏輯狀態(tài),與 TTL 以高低電平表示邏輯狀態(tài)的規(guī)定不同。因此,為了能夠同計算機接口或終端的 TTL 器件連接,必須在 EIA-RS-232C 與 TTL 電路之間進行電平和邏輯關(guān)系的變換。實現(xiàn)這種變換的方法可用分立元件,也可用集成電路芯片。目前較為廣泛地使用集成電路轉(zhuǎn)換器件,如 MC1488、SN75150 芯片可完成 TTL電平到 EIA 電平的轉(zhuǎn)換,而 MC1489、SN75154 可實現(xiàn) EIA 電平到 TTL 電平6┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊的轉(zhuǎn)換。MAX232 芯片可完成 TTL←→EIA 雙向電平轉(zhuǎn)換,圖 2.1 顯示了 1488和 1489 的內(nèi)部結(jié)構(gòu)和引腳。MC1488 的引腳(2)、(4,5) 、(9,10)和(12,13) 接 TTL輸入。引腳 3、6、8、11 輸出端接 EIA-RS-232C。MC1498 的 14 的1、4、10、13 腳接 EIA 輸入,而 3、6、8、11 腳接 TTL 輸出。具體連接方法如圖 2.2 所示。圖中的左邊是微機串行接口電路中的主芯片 UART,它是 TTL器件,右邊是 EIA-RS-232C 連接器,要求 EIA 高電壓。因此, RS-232C 所有的輸出、輸入信號都要分別經(jīng)過 MC1488 和 MC1498 轉(zhuǎn)換器,進行電平轉(zhuǎn)換后才能送到連接器上去或從連接器上送進來。圖 2.2 MC1498 連接圖2.1.2 連接器的機械特性連接器:由于 RS-232C 并未定義連接器的物理特性,因此,出現(xiàn)了 DB-25、DB-15 和 DB-9 各種類型的連接器,其引腳的定義也各不相同。下面分別介紹兩種連接器。(1)DB-25 : PC 和 XT 機采用 DB-25 型連接器。DB-25 連接器定義了25 根信號線,分為 4 組:①異步通信的 9 個電壓信號(含信號地 SG)2,3,4,5,6,7,8,20,227┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊②20mA 電流環(huán)信號 9 個(12,13,14,15,16,17,19,23,24)③空 6 個(9,10,11,18,21,25)④保護地(PE)1 個,作為設(shè)備接地端( 1 腳)DB-25 型連接器的外形及信號線分配如圖 2.3 所示。注意,20mA 電流環(huán)信號僅 IBM PC 和 IBM PC/XT 機提供,至 AT 機及以后,已不支持。圖 2.3 DB-25 型連接器的外形及信號線分配圖(2)DB-9 連接器在 AT 機及以后,不支持 20mA 電流環(huán)接口,使用 DB-9 連接器,作為提供多功能 I/O 卡或主板上 COM1 和 COM2 兩個串行接口的連接器。它只提供異步通信的 9 個信號。DB-25 型連接器的引腳分配與 DB-25 型引腳信號完全不同。因此,若與配接 DB-25 型連接器的 DCE 設(shè)備連接,必須使用專門的電纜線。電纜長度:在通信速率低于 20kb/s 時,RS-232C 所直接連接的最大物理距離為 15m(50 英尺) 。最大直接傳輸距離說明:RS-232C 標(biāo)準(zhǔn)規(guī)定,若不使用 MODEM,在碼元畸變小于 4%的情況下,DTE 和 DCE 之間最大傳輸距離為 15m(50 英尺) ??梢娺@個最大的距離是在碼元畸變小于 4%的前提下給出的。為了保證碼元畸變小于 4%的要求,接口標(biāo)準(zhǔn)在電氣特性中規(guī)定,驅(qū)動器的負(fù)載電容應(yīng)小于2500pF。8┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊2.1.3 RS-232C 的接口信號RS-232C 規(guī)標(biāo)準(zhǔn)接口有 25 條線,4 條數(shù)據(jù)線、11 條控制線、3 條定時線、7 條備用和未定義線,常用的只有 9 根,它們是(1)聯(lián)絡(luò)控制信號線:數(shù)據(jù)裝置準(zhǔn)備好(Data set ready-DSR)——有效時(ON)狀態(tài),表明MODEM 處于可以使用的狀態(tài)。數(shù)據(jù)終端準(zhǔn)備好(Data set ready-DTR)——有效時( ON)狀態(tài),表明數(shù)據(jù)終端可以使用。這兩個信號有時連到電源上,一上電就立即有效。這兩個設(shè)備狀態(tài)信號有效,只表示設(shè)備本身可用,并不說明通信鏈路可以開始進行通信了,能否開始進行通信要由下面的控制信號決定。請求發(fā)送(Request to send-RTS)——用來表示 DTE 請求 DCE 發(fā)送數(shù)據(jù),即當(dāng)終端要發(fā)送數(shù)據(jù)時,使該信號有效(ON 狀態(tài)) ,向 MODEM 請求發(fā)送。它用來控制 MODEM 是否要進入發(fā)送狀態(tài)。允許發(fā)送(Clear to send-CTS)——用來表示 DCE 準(zhǔn)備好接收 DTE 發(fā)來的數(shù)據(jù),是對請求發(fā)送信號 RTS 的響應(yīng)信號。當(dāng) MODEM 已準(zhǔn)備好接收終端傳來的數(shù)據(jù),并向前發(fā)送時,使該信號有效,通知終端開始沿發(fā)送數(shù)據(jù)線 TxD發(fā)送數(shù)據(jù)。這對 RTS/CTS 請求應(yīng)答聯(lián)絡(luò)信號是用于半雙工 MODEM 系統(tǒng)中發(fā)送方式和接收方式之間的切換。在全雙工系統(tǒng)中作發(fā)送方式和接收方式之間的切換。在全雙工系統(tǒng)中,因配置雙向通道,故不需要 RTS/CTS 聯(lián)絡(luò)信號,使其變高。接收線信號檢出(Received Line detection-RLSD)——用來表示 DCE 已接通通信鏈路,告知 DTE 準(zhǔn)備接收數(shù)據(jù)。當(dāng)本地的 MODEM 收到由通信鏈路另一端(遠地)的 MODEM 送來的載波信號時,使 RLSD 信號有效,通知終端準(zhǔn)備接收,并且由 MODEM 將接收下來的載波信號解調(diào)成數(shù)字兩數(shù)據(jù)后,沿接收數(shù)據(jù)線 RxD 送到終端。此線也叫做數(shù)據(jù)載波檢出(Data Carrier dectection-DCD)線。振鈴指示(Ringing-RI)——當(dāng) MODEM 收到交換臺送來的振鈴呼叫信號時,9┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊使該信號有效(ON 狀態(tài)) ,通知終端,已被呼叫。(2)數(shù)據(jù)發(fā)送與接收線:發(fā)送數(shù)據(jù)(Transmitted data-TxD)——通過 TxD 終端將串行數(shù)據(jù)發(fā)送到MODEM,(DTE→DCE) 。接收數(shù)據(jù)(Received data-RxD)——通過 RxD 線終端接收從 MODEM 發(fā)來的串行數(shù)據(jù),(DCE→DTE)。(3)地線有兩根線 SG、PG——信號地和保護地信號線,無方向。上述控制信號線何時有效,何時無效的順序表示了接口信號的傳送過程。例如,只有當(dāng) DSR 和 DTR 都處于有效(ON)狀態(tài)時,才能在 DTE 和 DCE之間進行傳送操作。若 DTE 要發(fā)送數(shù)據(jù),則預(yù)先將 DTR 線置成有效(ON)狀態(tài),等 CTS 線上收到有效(ON)狀態(tài)的回答后,才能在 TxD 線上發(fā)送串行數(shù)據(jù)。這種順序的規(guī)定對半雙工的通信線路特別有用,因為半雙工的通信才能確定 DCE已由接收方向改為發(fā)送方向,這時線路才能開始發(fā)送。2 個數(shù)據(jù)信號:發(fā)送 TXD;接收 RXD。1 個信號地線:SG。6 個控制信號:DSR 數(shù)傳機(即 modem)準(zhǔn)備好,Data Set Ready。DTR 數(shù)據(jù)終端(DTE,即微機接口電路,如 Intel8250/8251,16550)準(zhǔn)備好,Data Terminal Ready。RTS DTE 請求 DCE 發(fā)送(Request To Send)。CTS DCE 允許 DTE 發(fā)送(Clear To Send),該信號是對 RTS 信號的回答。DCD 數(shù)據(jù)載波檢出,Data Carrier Detection 當(dāng)本地 DCE 設(shè)備(Modem )收到對方的 DCE 設(shè)備送來的載波信號時,使 DCD 有效,通知 DTE 準(zhǔn)備接收,并且由 DCE 將接收到的載波信號解調(diào)為數(shù)字信號, 經(jīng) RXD 線送給 DTE。RI 振鈴信號 Ringing 當(dāng) DCE 收到交換機送來的振鈴呼叫信號時,使該信號有效,通知 DTE 已被呼叫。10┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊2.2 遠距離通信 第 1 和第 2 中情況是屬于遠距離通信(傳輸距離大于 15m 的通信)的例子,故一般要加調(diào)制解調(diào)器 MODEM,因此使用的信號線較多。注意:在以下各圖中,DTE 信號為 RS-232-C 信號,DTE 與計算機間的電平轉(zhuǎn)換電路未畫出。 2.2.1 采用 Modem(DCE)和電話網(wǎng)通信時的信號連接 若在雙方 MODEM 之間采用普通電話交換線進行通信,除了需要 2~8 號信號線外還要增加 RI(22 號) 和 DTR(20 號)兩個信號線進行聯(lián)絡(luò),如圖 2.4 所示。圖 2.4 RI 信號和 DTR 信號聯(lián)絡(luò)圖DSR、DTR:數(shù)傳機(DCE)準(zhǔn)備好、數(shù)據(jù)終端(DTE)準(zhǔn)備好,只表示設(shè)備本身可用。首先,通過電話機拔號呼叫對方,電話交換臺向?qū)Ψ桨l(fā)出拔號呼叫信號,當(dāng)對方 DCE 收到該信號后,使 RI(振鈴信號)有效,通知 DTE,已被呼叫。11┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊當(dāng)對方“摘機”后,兩方建立了通信鏈路。若計算機要發(fā)送數(shù)據(jù)至對方,首先通過接口電路(DTE)發(fā)出 RTS(請求發(fā)送)信號。此時,若 DCE(Modem)允許傳送,則向 DTE 回答 CTS(允許發(fā)送)信號。一般可直接將 RTS/CTS 接高電平,即只要通信鏈路已建立,就可傳送信號。(RTS/CTS 可只用于半雙工系統(tǒng)中作發(fā)送方式和接收方式的切換。當(dāng) DTE 獲得 CTS 信號后,通過 TXD 線向 DCE 發(fā)出串行信號,DCE(Modem)將這些數(shù)字信號調(diào)制成模擬信號(又稱載波信號),傳向?qū)Ψ?。計算機向 DTE“數(shù)據(jù)輸出寄存器”傳送新的數(shù)據(jù)前,應(yīng)檢查 Modem 狀態(tài)和數(shù)據(jù)輸出寄存器為空。當(dāng)對方的 DCE 收到載波信號后,向?qū)Ψ降?DTE 發(fā)出DCD 信號(數(shù)據(jù)載波檢出),通知其 DTE 準(zhǔn)備接收,同時,將載波信號解調(diào)為數(shù)據(jù)信號,從 RXD 線上送給 DTE,DTE 通過串行接收移位寄存器對接收到的位流進行移位,當(dāng)收到 1 個字符的全部位流后,把該字符的數(shù)據(jù)位送到數(shù)據(jù)輸入寄存器,CPU 可以從數(shù)據(jù)輸入寄存器讀取字符。 2.2.2 采用專用電話線通信在通信雙方的 MODEM 之間采用電話線進行通信,則只要使用 2~8 號信號線進行聯(lián)絡(luò)與控制。不需要電話機、振鈴信號 RI 和 DTR 信號,其信號線的連接如圖 2.5 那樣。12┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊圖 2.5 MODEM 信號線連接圖2.3 近距離通信 當(dāng)通信距離較近時,可不需要 Modem,通信雙方可以直接連接,這種情況下,只需使用少數(shù)幾根信號線。最簡單的情況,在通信中根本不需要 RS-232C 的控制聯(lián)絡(luò)信號,只需三根線(發(fā)送線、接收線、信號地線)便可實現(xiàn)全雙工異步串行通信,即是這里要討論的第一種情況。無 Modem 時,最大通信距離按如下方式計算:RS-232C 標(biāo)準(zhǔn)規(guī)定:當(dāng)誤碼率小于 4%時,要求導(dǎo)線的電容值應(yīng)小于2500PF。對于普通導(dǎo)線,其電容值約為 170PF/M。則允許距離L=2500PF/( 170PF/M)=15M這一距離的計算,是偏于保守的,實際應(yīng)用中,當(dāng)使用 9600bps,普通雙絞屏蔽線時,距離可達 30~35 米。 2.3.1 零 Modem 的最簡連線(3 線制)圖 2.6 是零 MODEM 方式的最簡單連接(即三線連接),圖中的 2 號線與3 號線交叉連接是因為在直連方式時,把通信雙方都當(dāng)作數(shù)據(jù)終端設(shè)備看待,雙方都可發(fā)也可收。在這種方式下,通信雙方的任何一方,只要請求發(fā)送 RTS有效和數(shù)據(jù)終端準(zhǔn)備好 DTR 有效就能開始發(fā)送和接收。圖 2.6 MODEM 三線連接圖13┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊(1 ) RTS 與 CTS 互聯(lián):只要請求發(fā)送,立即得到允許(2 ) DTR 與 DSR 互聯(lián):只要本端準(zhǔn)備好,認(rèn)為本端立即可以接收(DSR、數(shù)傳機準(zhǔn)備好)。2.3.2 零 Modem 標(biāo)準(zhǔn)連接如果想在直接連接時,而又考慮到 RS-232C 的聯(lián)絡(luò)控制信號,則采用零MODEM 方式的標(biāo)準(zhǔn)連接方法,其通信雙方信號線安排如下 1-2-3-4-5 順序所演示的那樣。無 Modem 的標(biāo)準(zhǔn)聯(lián)線(7 線制)如圖所示:從中可以看出,RS-232C 接口標(biāo)準(zhǔn)定義的所有信號線都用到了,并且是按照 DTE 和 DCE 之間信息交換協(xié)議的要求進行連接的,只不過是把 DTE 自己發(fā)出的信號線送過來,當(dāng)作對方 DCE 發(fā)來的信號,因此,又把這種連接稱為雙叉環(huán)回接口。雙方的握手信號關(guān)系如下(注:甲方乙方并未在圖中標(biāo)出):(1)當(dāng)甲方的 DTE 準(zhǔn)備好,發(fā)出 DTR 信號,該信號直接聯(lián)至乙方的RI(振鈴信號)和 DSR(數(shù)傳機準(zhǔn)備好)。即只要甲方準(zhǔn)備好,乙方立即產(chǎn)生呼叫(RI )有效,并同時準(zhǔn)備好(DSR )。盡管此時乙方并不存在 DCE(數(shù)傳機)。(2)甲方的 RTS 和 CTS 相連,并與乙方的 DCD 互連。即:一旦甲方請求發(fā)送(RTS),便立即得到允許(CTS),同時,使乙方的 DCD 有效,即檢測到載波信號。(3)甲方的 TXD 與乙方的 RXD 相連,一發(fā)一收。 14┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊圖 2.7 無 Modem 的標(biāo)準(zhǔn)聯(lián)線(7 線制)圖15┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊3 VC Mscomm 控件應(yīng)用Microsoft 公司推出 Windows 以后,立即一其新穎的圖形用戶界面、卓越的多任務(wù)操作系統(tǒng)性能、高層次的軟件開發(fā)平臺而風(fēng)靡全球。1991 年Microsoft 公司推出的 Windows 應(yīng)用程序開發(fā)工具 Visual C++ 6.0(以下簡稱VC) ,Visual 意味著“可視化的”,指的是一種開發(fā)圖形用戶界面(GUI)的方法,所以 Visual C++是一種功能強大、簡單易學(xué)的基于 C 的可視化程序設(shè)計語言。在 Visual C++中,繼承了其先輩 C 語言的全部功能以及其所具有的程序設(shè)計語言簡單易用的特點,而且還增加了面向?qū)ο蟪绦蛟O(shè)計功能。其編程系統(tǒng)又采用了面向?qū)ο?、事件?qū)動的編制機制,用一種巧妙的方法把 Windows 的編程復(fù)雜性封裝起來,提供了一種所見即所得的的可視化界面設(shè)計方法。它不僅可以方便快捷地編制適用于數(shù)據(jù)處理、多媒體等方面的程序,而且利用ActiveX 控件 MSComm 還能十分方便地開發(fā)出使用計算機串口的計算機通信程序。下面詳細介紹如何在 VC 中使用 MSComm 控件。3.1 Mscomm 控件Microsoft Communications Control(以下簡稱 MSComm)是 Microsoft 公司提供的簡化 windows 下串行通信編程的 ActiveX 控件,它為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡便方法,在 VisualC++、Visual Basic、DelPhi 等語言中均可使用。本節(jié)將簡單介織一下 MSComm 控件的使用方法。注意:ActiveX 是一種在 Windows 下進行應(yīng)用程序開發(fā)的技術(shù),它的核心內(nèi)容是組件對象模型 COM(Component Object Model),ActiveX 控件包括一系列的屬性、方法和事件,使用 ActiveX 控件的應(yīng)用程序和 ActiveX 控件之間的工作方式是客戶/服務(wù)器方式,即應(yīng)用程序通過 ActiveX 控件提供的接口來訪問ActiveX 控件的功能。16┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊3.1.1 MSComm 控件兩種處理通信的方式MSComm 控件提供下列兩種處理通信的方式:事件驅(qū)動方式和查詢方式。 (1)事件驅(qū)動方式:事件驅(qū)動方式是處理串行端口交互作用的一種非常有效的方法。在許多情況下,事件發(fā)生時要得到通知,例如,在串門接收緩沖區(qū)中有寧符,或者Carrier Detect (CD) 或 Request To Send(RTS)線上一個字符到達或一個變化發(fā)生時。在這些情況下,可以利用 MSComm 控件的 OnComm 事件捕獲并處理這些通信事件; OnComm 事件還可以檢查和處理通信錯誤 (所有通信事件和通信錯誤的列表,請參閱 CommEvent 屬性),在 OnComm 事件處理函數(shù)中加入自己的處理代碼。事件驅(qū)動方法的優(yōu)點是程序響應(yīng)及時,可靠性高。每個 MSComm 控件對應(yīng)著一個串行端口。如果應(yīng)用程序需要訪問多個串行端口,必須使用多個MSComm 控件。 (2)查詢方式:查詢方式實質(zhì)上還是屬于事件驅(qū)動方式,但在有些情況下,這種方式顯得更為便捷。在程序的每個關(guān)鍵功能之后,可以通過檢查 CommEvent 屬性的值來查詢事件和錯誤。如果應(yīng)用程序較小,并且是自保持的,這種方法可能是更可取的。例如,如果寫一個簡單的電話撥號程序,則沒有必要對每接收一個字符都產(chǎn)生事件,因為唯一等待接收的字符是調(diào)制解調(diào)器的“確定”響應(yīng)。3.1.2 MSComm 控件的常用屬性MSComm 控件有很多重要的屬性,但首先必須熟悉幾個屬性。CommPort: 設(shè)置并返回通訊端口號。 Settings: 以字符串的形式設(shè)置并返回波特率、奇偶校驗、數(shù)據(jù)位、停止位。 PortOpen: 設(shè)置并返回通訊端口的狀態(tài)。也可以打開和關(guān)閉端口。 Input: 從接收緩沖區(qū)返回和刪除字符。 17┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊Output: 向傳輸緩沖區(qū)寫一個字符串。下面分別描述: CommPort 屬性 : 設(shè)置并返回通訊端口號。語法: object.CommPort[value ] (value 一整型值,說明端口號。 ) 說明: 在設(shè)計時, value 可以設(shè)置成從 1 到 16 的任何數(shù)(缺省值為 1) 。但是如果用 PortOpen 屬性打開一個并不存在的端口時,MSComm 控件會產(chǎn)生錯誤 68(設(shè)備無效) 。注意:必須在打開端口之前設(shè)置 CommPort 屬性。RThreshold 屬性:在 MSComm 控件設(shè)置 CommEvent 屬性為 comEvReceive 并產(chǎn)生 OnComm 之前,設(shè)置并返回的要接收的字符數(shù)。語法: object.Rthreshold [ = value ](value 整型表達式,說明在產(chǎn)生 OnComm 事件之前要接收的字符數(shù)。 )說明: 當(dāng)接收字符后,若 Rthreshold 屬性設(shè)置為 0(缺省值)則不產(chǎn)生 OnComm 事件。例如,設(shè)置 Rthreshold 為 1,接收緩沖區(qū)收到每一個字符都會使 MSComm 控件產(chǎn)生 OnComm 事件。CTSHolding 屬性:確定是否可通過查詢 Clear To Send (CTS) 線的狀態(tài)發(fā)送數(shù)據(jù)。Clear To Send 是調(diào)制解調(diào)器發(fā)送到相聯(lián)計算機的信號,指示傳輸可以進行。該屬性在設(shè)計時無效,在運行時為只讀。語法: object.CTSHolding(Boolean)Mscomm 控件的 CTSHolding 屬性設(shè)置值:True Clear To Send 線為高電平。 False Clear To Send 線為低電平。 說明:如果 Clear To Send 線為低電平 (CTSHolding = False) 并且超時時,MSComm 控件設(shè)置 CommEvent 屬性為 comEventCTSTO (Clear To Send Timeout) 并產(chǎn)生 OnComm 事件。Clear To Send 線用于 RTS/CTS (Request To Send/Clear To Send) 硬件握手。如18┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊果需要確定 Clear To Send 線的狀態(tài),CTSHolding 屬性給出一種手工查詢的方法。詳細信息 有關(guān)握手協(xié)議,請參閱 Handshaking 屬性。SThreshold 屬性: MSComm 控件設(shè)置 CommEvent 屬性為 comEvSend 并產(chǎn)生 OnComm 事件之前,設(shè)置并返回傳輸緩沖區(qū)中允許的最小字符數(shù)。語法:object.SThreshold [ = value ]value 整形表達式,代表在 OnComm 事件產(chǎn)生之前在傳輸緩沖區(qū)中的最小字符數(shù)。 說明:若設(shè)置 Sthreshold 屬性為 0(缺省值) ,數(shù)據(jù)傳輸事件不會產(chǎn)生 OnComm 事件。若設(shè)置 Sthreshold 屬性為 1,當(dāng)傳輸緩沖區(qū)完全空時,MSComm 控件產(chǎn)生 OnComm 事件。如果在傳輸緩沖區(qū)中的字符數(shù)小于 value,CommEvent 屬性設(shè)置為 comEvSend,并產(chǎn)生 OnComm 事件。comEvSend 事件僅當(dāng)字符數(shù)與 Sthreshold 交叉時被激活一次。例如,如果 Sthreshold 等于 5,僅當(dāng)在輸出隊列中字符數(shù)從 5 降到 4 時,comEvSend 才發(fā)生。如果在輸出隊列中從沒有比 Sthreshold 多的字符,comEvSend 事件將絕不會發(fā)生。Handshake 常數(shù)常數(shù) 值 描述 comNone 0 無握手。 comXonXoff 1 XOn/Xoff 握手。 comRTS 2 Request-to-send/clear-to-send 握手。 comRTSXOnXOff 3 Request-to-send 和 clear-to-send 握手皆可。 OnComm 常數(shù)常數(shù) 值 描述 comEvSend 1 發(fā)送事件。 comEvReceive 2 接收事件。 comEvCTS 3 clear-to-send 線變化。 19┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊comEvDSR 4 data-set ready 線變化。 comEvCD 5 carrier detect 線變化。 comEvRing 6 振鈴檢測。 comEvEOF 7 文件結(jié)束。 Error 常數(shù)常數(shù) 值 描述 comEventBreak 1001 接收到中斷信號 comEventCTSTO 1002 Clear-to-send 超時 comEventDSRTO 1003 Data-set ready 超時 comEventFrame 1004 幀錯誤 comEventOverrun 1006 端口超速 comEventCDTO 1007 Carrier detect 超時 comEventRxOver 1008 接收緩沖區(qū)溢出 comEventRxParity 1009 Parity 錯誤 comEventTxFull 1010 傳輸緩沖區(qū)滿 comEventDCB 1011 檢索端口 設(shè)備控制塊 (DCB) 時的意外錯誤 InputMode 常數(shù)常數(shù) 值 描述 comInputModeText 0 (缺省)通過 Input 屬性以文本方式取回數(shù)據(jù)。 comInputModeBinary 1 通過 Input 屬性以二進制方式檢取回數(shù)據(jù)。 CDHolding 屬性:通過查詢 Carrier Detect (CD) 線的狀態(tài)確定當(dāng)前是否有傳輸。Carrier Detect 是從調(diào)制解調(diào)器發(fā)送到相聯(lián)計算機的一個信號,指示調(diào)制解調(diào)器正在聯(lián)機。該屬性在設(shè)計時無效,在運行時為只讀。語法: object.CDHolding設(shè)置值:CDHolding 屬性的設(shè)置值為: 設(shè)置 描述 True Carrier Detect 線為高電平 20┊┊┊┊┊┊┊┊┊┊┊┊┊裝┊┊┊┊┊訂┊┊┊┊┊線┊┊┊┊┊┊┊┊┊┊┊┊┊False Carrier Detect 線為低電平
收藏
編號:146737
類型:共享資源
大?。?span id="kywiwiy4em" class="font-tahoma">665.43KB
格式:RAR
上傳時間:2017-10-26
100
積分
- 關(guān) 鍵 詞:
-
dz226
多媒體
中央
控制器
設(shè)置
寫入
程序
上位
程序設(shè)計
- 資源描述:
-
DZ226多媒體中央控制器設(shè)置寫入程序上位機程序設(shè)計,dz226,多媒體,中央,控制器,設(shè)置,寫入,程序,上位,程序設(shè)計
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。