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