專利名稱::嵌入式外設(shè)統(tǒng)一接入方法嵌入式外設(shè)統(tǒng)一接入方法
技術(shù)領(lǐng)域:
:本發(fā)明是關(guān)于嵌入式系統(tǒng),特別是一種嵌入式外設(shè)接入的方法。
背景技術(shù):
:嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機(jī)技術(shù)為基礎(chǔ),并且軟硬件可裁剪的專用系統(tǒng),其對功能、可靠性、成本、體積、功一毛有嚴(yán)格要求。它一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng)用程序等四個部分組成,用于實現(xiàn)對其他設(shè)備的監(jiān)控或管理等功能。嵌入式系統(tǒng)中的外圍硬件設(shè)備即嵌入式設(shè)備,既可以是集成在微處理器上的某個通信端口,也可以是由微處理器控制的外圍芯片。當(dāng)前嵌入式設(shè)備中各個外部設(shè)備的電氣參數(shù)和遵循的規(guī)則大不相同,因此一次只能撥接其中的一種。并且每個嵌入式設(shè)備需要一個控制器,例如PC,鍵盤和鼠標(biāo)需要一個控制器、紅外接收發(fā)送需要另外一個控制器,電源控制也需要另外一個控制器。現(xiàn)有嵌入式外設(shè)接入方法的缺點是只能接一種設(shè)備,如果要接多個外設(shè),需要給每個外設(shè)增加一個接收控制裝置,每個控制裝置還需要和上位機(jī)通訊,上位機(jī)的通訊接口將被大量占用,使上位機(jī)實時性下降,效率降低,從而造成成本高、控制復(fù)雜、效率低。因此,急需一種統(tǒng)一、低成本,高效的嵌入式接入方法,能夠同時撥接多個外部設(shè)備。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問題在于提供一種成本低、統(tǒng)一控制簡單、提高上位機(jī)效率、可以多個外部設(shè)備同時撥接到主機(jī)的嵌入式外設(shè)統(tǒng)一接入方法。本發(fā)明是通過以下技術(shù)方案解決上述技術(shù)問題的一種嵌入式外設(shè)統(tǒng)一接入方法,包括下述步驟步驟一首先將單片機(jī)與上位機(jī)連接;步驟二撥接所有外設(shè)將所有的外部設(shè)備撥接到單片機(jī)上,各個外部設(shè)備都插入相對應(yīng)的插座上就完成了外部設(shè)備的撥接;步驟三打開單片機(jī)外部設(shè)備撥接成功后打開主設(shè)備電源和單片機(jī);步驟四初始化外設(shè)單片機(jī)打開后,即自動初始化各外部設(shè)備;步驟五外設(shè)發(fā)送數(shù)據(jù)單片機(jī)等待某個外部設(shè)備發(fā)送數(shù)據(jù),當(dāng)外部設(shè)備需要往上位機(jī)發(fā)送數(shù)據(jù)時,首先發(fā)送至單片機(jī);步驟六單片機(jī)接收數(shù)據(jù)并發(fā)送單片機(jī)接收此外部設(shè)備發(fā)送的數(shù)據(jù),并打包數(shù)據(jù),以一定的數(shù)據(jù)格式發(fā)送到上位機(jī);步驟七上位機(jī)接收數(shù)據(jù)上位機(jī)接收到打包的數(shù)據(jù)后,進(jìn)行拆包,取出有用數(shù)據(jù),進(jìn)行相應(yīng)處理上位機(jī)還可以發(fā)送數(shù)據(jù)到單片機(jī),以實現(xiàn)電源軟開關(guān)控制。本發(fā)明嵌入式外設(shè)統(tǒng)一接入方法的優(yōu)點在于成本低、統(tǒng)一控制筒單可靠、提高上位機(jī)效率、并且可以多個外部設(shè)備同時撥接到主機(jī)。下面參照附圖結(jié)合實施例對本發(fā)明作進(jìn)一步的描述。圖l是本發(fā)明嵌入式外設(shè)統(tǒng)一接入方法的硬件示意圖。圖2是本發(fā)明嵌入式外設(shè)統(tǒng)一接入方法的軟件流程圖。圖3至圖19為各外部設(shè)備的不同波形圖。具體實施方式請參閱圖1,為本發(fā)明嵌入式外設(shè)統(tǒng)一接入方法的硬件示意圖,包括上位機(jī)、單片機(jī),以及一種以上的外部設(shè)備。其中本實施例中外部設(shè)備包括紅外遙控器、紅外鍵盤鼠標(biāo)、PS/2(第二代電腦系統(tǒng))外設(shè)(例如PC鍵盤、控制面板、觸摸屏)、以及電源控制器。其中上位機(jī)設(shè)置看門狗功能、提供上位機(jī)復(fù)位信號。單片機(jī)與上位機(jī)連接,進(jìn)行兩線通訊,傳輸控制信號。紅外遙控器、紅外鍵盤鼠標(biāo)、PS/2外設(shè)、以及電源控制器等外部設(shè)備均連接到單片機(jī)上。電源控制器實現(xiàn)了設(shè)備電源軟開關(guān)控制和檢測。并且可以和上位機(jī)通訊,實現(xiàn)軟重啟,軟關(guān)機(jī)。即本發(fā)明嵌入式外設(shè)統(tǒng)一接入方法是將多個外設(shè)的驅(qū)動信號,同時連接到單片機(jī)的各個端口上。單片機(jī)實時檢測這些外設(shè)的信號,有信息傳遞時,單片機(jī)將信息處理后以一定的格式和協(xié)議發(fā)送到上位機(jī)。請參閱圖2,本發(fā)明嵌入式外設(shè)統(tǒng)一接入方法的操作過程包括以下步驟步驟一首先將單片機(jī)與上位機(jī)連接;步驟二撥接所有外設(shè)將所有的外部設(shè)備撥接到單片機(jī)上,例如PS/2外設(shè)(觸摸屏、控制面板)插到單片機(jī)的PS/2的插座(包含電源、時鐘信號、數(shù)據(jù)信號、地),紅外遙控器、紅外鍵盤鼠標(biāo)等紅外設(shè)備分別插在單片機(jī)的外置紅外接收插座(包含紅外輸出信號、電源、地)以及紅外發(fā)射插座(包含電源、紅外輸出信號、地)上,電源控制器連接到單片機(jī)的電源控制輸出端口等,兩線通訊信號連接到上位機(jī)的通訊端口。各個外部設(shè)備都插入相對應(yīng)的插座上就完成了外部設(shè)備的撥接。步驟三打開單片機(jī)外部設(shè)備撥接成功后打開主設(shè)備電源和單片機(jī);步驟四初始化外設(shè)單片機(jī)打開后,即自動初始化各外部設(shè)備;步驟五外設(shè)發(fā)送數(shù)據(jù)單片機(jī)等待某個外部設(shè)備發(fā)送數(shù)據(jù),當(dāng)外部設(shè)備需要往上位機(jī)發(fā)送數(shù)據(jù)時,首先發(fā)送至單片機(jī);步驟六單片機(jī)接收數(shù)據(jù)并發(fā)送單片機(jī)接收此外部設(shè)備發(fā)送的數(shù)據(jù),并打包數(shù)據(jù),以一定的數(shù)據(jù)格式發(fā)送到上位機(jī),其具體過程如下首先發(fā)送數(shù)據(jù)的外設(shè)中斷,然后單片機(jī)接收數(shù)據(jù),并將接收到的數(shù)據(jù)進(jìn)行打包,最后中斷返回;步驟七上位機(jī)接收數(shù)據(jù)上位機(jī)接收到打包的數(shù)據(jù)后,進(jìn)行拆包,取出有用數(shù)據(jù),進(jìn)行相應(yīng)處理,上位機(jī)還可以發(fā)送數(shù)據(jù)到單片機(jī),以實現(xiàn)電源軟開關(guān)控制,即單片機(jī)的軟重啟以及軟關(guān)機(jī),并實現(xiàn)上位機(jī)的開門狗功能。以下是以三個外部設(shè)備紅外遙控器、紅外鍵盤鼠標(biāo)、PS/2鍵盤鼠標(biāo)為例,具體說明上述嵌入式外設(shè)統(tǒng)一接入方法的接收數(shù)據(jù)和發(fā)送數(shù)據(jù)的流程和協(xié)議。第一實施例紅外遙控器請參閱圖3,為紅外遙控器的的某個鍵的波形圖。從該波形可以看出,該紅外遙控器的波形分成三個部分導(dǎo)引頭、32bit數(shù)據(jù)、重碼,上述三個部分依照如下的格式導(dǎo)引頭(四個字節(jié)的數(shù)據(jù)、低位在前)…32bit數(shù)據(jù)…重碼信號…32bit數(shù)據(jù)…重碼信號1)導(dǎo)引頭請參閱圖4,為該導(dǎo)引頭的波形圖,導(dǎo)引頭的作用表示這是一款遙控器;表示數(shù)據(jù)傳送開始。該導(dǎo)引頭的波形的時間參凄丈是:實際測量時間接收碼冗余碼冗余后時間13380-13540021H-020H028H-016H12960-14040上述各時間參數(shù)的定義如下實際測量平均時間測量10次取最小值-最大值,單位us。接收碼單片機(jī)定時器(定時周期60us)中斷次數(shù)計數(shù)器,減計數(shù),即中斷一次計數(shù)器減1。冗余碼因為遙控器的差異,導(dǎo)引頭的時間有個小小的誤差,4艮據(jù)實際測量時間冗余后的計數(shù)器值,即在這個時間內(nèi)被判斷是遙控器的導(dǎo)引頭。冗余后時間同上,只是把冗余碼換算成時間最小值-最大值。后面所有的時間參數(shù)表說明同上。遙控器導(dǎo)引頭處理很重要,它表示數(shù)據(jù)的開始,如果導(dǎo)引頭判斷錯誤將直接導(dǎo)致后面的數(shù)據(jù)丟失。但是,由于遙控器的不同甚至同一個遙控器不同的按鍵,導(dǎo)引頭的時間參數(shù)都有誤差。所以這個時間參數(shù)不是一個固定的值,需要有適當(dāng)?shù)娜哂?。但是冗余值也不能太大,太大了會造成誤碼,通過實際測量冗余420us的時間可以很好的解決這個問題。2)32bit的數(shù)據(jù)請參閱圖5,為該紅外遙控器的32bit的數(shù)據(jù)的波形圖。該紅外遙控器使用兩種波形來表示數(shù)據(jù)中的bitl和bit0。判斷依據(jù)每個波形之間即兩個下降沿之間的整段時間。請參閱圖6,為紅外遙控器32bit的數(shù)據(jù)中bit0的波形圖,請參閱圖7,為紅外遙控器32bit的數(shù)據(jù)中bitl的波形圖。其中數(shù)據(jù)bit0的時間參數(shù)如下:<table>tableseeoriginaldocumentpage9</column></row><table>該32bit的數(shù)據(jù)表示遙控器的哪個鍵被按下了,這32bit的數(shù)據(jù)被分成4個字節(jié),其中第1、2個字節(jié)是表示這款遙控器的ID(標(biāo)識符),第3個字節(jié)是表示遙控器的某個^l建的鍵值(由遙控器廠家定義),第4個字節(jié)是第3個字節(jié)的反碼,用于錯誤檢測。所有字節(jié)數(shù)據(jù)是依照低位在前連續(xù)傳送。數(shù)據(jù)的接收關(guān)系到這次遙控器按下了什么鍵,所以每一位的判斷很重要,遙控器中bitO和bitl時間參數(shù)之間的間隔是1140us,所以它們的冗余不能大,只能在120us左右。第4個字節(jié)是用于錯誤檢測的,4艮重要,如果第四個字節(jié)的反碼和第三個字節(jié)不同的話,說明接收的數(shù)據(jù)有錯誤,應(yīng)該舍棄。3)重碼請參閱圖8,為該紅外遙控器的重碼信號波形圖。當(dāng)按下遙控器某個鍵不放時,這個鍵就成了連鍵,紅外遙控器每隔98ms發(fā)一個重碼信號,直到這個鍵被松開。重碼信號的時間參數(shù)如下<table>tableseeoriginaldocumentpage9</column></row><table>這個信號會造成一個錯誤的判斷例如用戶按下某個鍵不松手,遙控器就一直發(fā)這個鍵的重碼信號,這時,如果用戶沒有對準(zhǔn)接收頭,并且重新按了另外一個鍵不放,這時用戶又對準(zhǔn)了接收頭,單片機(jī)又收到正確的遙控器的重碼信號,但是這時的按鍵已經(jīng)不是原來接收到的按一建碼了。解決這個問題,就要增加一個定時操作,從遙控器的重碼信號發(fā)碼的間隔98ms知道,如果超過100ms沒有收到重碼信號的話,就可以判斷用戶已經(jīng)松手,或者傳輸通路受限,就不再處理后面的重碼信號,直到用戶重新按鍵。單片機(jī)和上位機(jī)之間協(xié)議如下所述串口波特率:19200,8位數(shù)據(jù),無校驗。(下同)器件代碼ID:OOOH(某學(xué)習(xí)型遙控器)器件代碼ID:OFFH(某學(xué)習(xí)型遙控器)第三字節(jié)按鍵:4建值其中我們使用的遙控器中電源鍵的遙控器鍵碼如下1.02H、OFDH、OOH2.OOH、OFFH、4BH電源鍵的處理是開機(jī)立即開,即關(guān)機(jī)狀態(tài)下,收到電源鍵立即開機(jī)關(guān)機(jī)延時關(guān),即開機(jī)狀態(tài)下,收到一定數(shù)量的電源鍵重碼才關(guān)機(jī),一般為5個。第二實施例紅外遙控鍵盤請參閱圖9,為紅外遙控鍵盤某個單^t的波形圖,該紅外遙控鍵盤上有集成一個遙控鼠標(biāo),所以遙控鍵盤和遙控鼠標(biāo)使用同一套波形參數(shù),從這個波形可以看出遙控鍵盤(鼠標(biāo))波形也是分成3個部分導(dǎo)引頭、校驗碼、鍵值。請參閱圖IO,為紅外遙控鍵盤的普通單鍵的導(dǎo)引頭波形圖,通過多次測量,這個導(dǎo)引頭的時間參數(shù)是<table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table>同第一實施例的紅外遙控器,導(dǎo)引頭的作用表示這是一款遙控鍵盤的普通單鍵;表示數(shù)據(jù)傳送開始。上述三種導(dǎo)引頭的時間間隔只有400us,該實施例中單片機(jī)使用11.0592M的晶振,定時器溢出周期為60us,也就是只有6-7個計數(shù)單位的冗余,可以看出導(dǎo)引頭的判斷難度很大(以目前的單片機(jī)時鐘)。解決這個問題的辦法有三個1、提高單片機(jī)時鐘;2、提高計時精度,即減小定時器溢出周期;3、使用軟件抗干擾處理,優(yōu)化導(dǎo)引頭處理程序。提高單片機(jī)時鐘,對串口波特率的設(shè)置造成困難,使用11.0592M的晶振的目的就是提高串口波特率的精度。提高計時精度,務(wù)必要減小定時器溢出周期,但這樣會造成CPU資源的極度浪費,效率降低。綜合考慮使用軟件抗干擾處理,優(yōu)化導(dǎo)引頭處理程序。1、首先掐頭去尾,把大于和小于的時間參數(shù)排除在外。2、使用冗余參數(shù),因為有6-7個計數(shù)單位的冗余,所以在每個導(dǎo)引頭前后增加2-3個計數(shù)單位的冗余,程序判斷嚴(yán)格落在導(dǎo)引頭冗余后的時間參數(shù)之內(nèi)的數(shù)據(jù)才有效。3、判斷出現(xiàn)導(dǎo)引頭錯誤后,適當(dāng)延時大于一個遙控^l盤接收周期的時間,通常遙控鍵盤會發(fā)很多次同樣的數(shù)據(jù),在下一個波形來之前初始化定時器,重新接收。該紅外遙控器的數(shù)據(jù)有兩種,其中如圖13所示,為單字節(jié)數(shù)據(jù)波形12bit,如圖14所示,為雙字節(jié)數(shù)據(jù)波形20bit,數(shù)據(jù)位使用兩種波形表示,其中圖15表示數(shù)據(jù)bit0的波形,通過多次測量,bitO的時間參數(shù)是<table>complextableseeoriginaldocumentpage12</column></row><table>如圖16所示,為數(shù)據(jù)bitl的波形,通過多次測量,bitl的時間參數(shù)是<table>complextableseeoriginaldocumentpage12</column></row><table>該紅外遙控鍵盤的數(shù)據(jù)位時間參數(shù)間隔也是400us,所以處理也要采用"軟件抗干擾處理"。該紅外外遙控4囊盤"單鍵"采用如下一種格式傳輸數(shù)據(jù)(12bit):(導(dǎo)引頭)(3bit后面數(shù)據(jù)中1的個數(shù))(lbit按下、^Hf)(—個字節(jié)的數(shù)據(jù)、低位在前)其中頭3bit很重要,它表示后面數(shù)據(jù)中l(wèi)的個數(shù),用來檢測錯誤。第4bit是按下松開的標(biāo)志位,為O表示按鍵按下,為l表示松開,后面8bit的一個字節(jié)的數(shù)據(jù)是按鍵的鍵值,遙控鍵盤的鍵值由遙控4建盤廠家預(yù)先定好。遙控鍵盤普通單鍵的發(fā)碼規(guī)則(指遙控鍵盤本身)是按下發(fā)這個按鍵的所有數(shù)據(jù)是依照低位在前連續(xù)傳送。遙控鍵盤"擴(kuò)展鍵"釆用如下一種格式傳輸數(shù)據(jù)(20bit):(導(dǎo)引頭)(4bit后面數(shù)據(jù)中l(wèi)的個數(shù))(兩個字節(jié)的數(shù)據(jù)、低位在前)其中頭4bit很重要,它表示后面數(shù)據(jù)中l(wèi)的個數(shù),用來檢測錯誤。后面一個字節(jié)的數(shù)據(jù)是擴(kuò)展鍵的按下和松開,最后一個字節(jié)的數(shù)據(jù)是鍵碼,擴(kuò)展鍵的鍵碼有bit5:左Winl表示這個鍵按下,為0表示這個鍵松開bit7:右Shiftl表示這個鍵按下,為0表示這個鍵^HfWt8:左Shiftl表示這個鍵按下,為O表示這個鍵松開bitlO:左Ctrl1表示這個鍵按下,為0表示這個鍵松開bitl2:左Alt1表示這個鍵按下,為0表示這個鍵松開bit123456789101112131415161718192043H(鍵值)4DH(鍵值)3FH(鍵值)54H(鍵值)40H(鍵值)左Alt00000001左Ctrl00000100左Shift00010000右Shift00100000左Win10000000遙控鍵盤擴(kuò)展鍵的發(fā)碼規(guī)則(指遙控鍵盤本身)是按照按鍵的先后順序有如下幾種發(fā)碼順序1、只按普通單鍵按下發(fā)普通單鍵通碼;松開發(fā)普通單鍵斷碼;2、只按擴(kuò)展鍵按下發(fā)普通單鍵通碼(鍵值為擴(kuò)展鍵的鍵值)繼續(xù)按住發(fā)擴(kuò)展鍵通碼(鍵值為擴(kuò)展鍵的鍵值)松開發(fā)普通單鍵斷碼(鍵值為擴(kuò)展鍵的鍵值)3、先按普通單鍵再按擴(kuò)展鍵按下普通單^t發(fā)普通單鍵通碼;按下擴(kuò)展鍵發(fā)擴(kuò)展鍵通碼(鍵值為擴(kuò)展鍵的鍵值)(即沒有擴(kuò)展鍵的普通單鍵通碼);都繼續(xù)按住發(fā)擴(kuò)展鍵通碼(鍵值為普通單鍵的鍵值,擴(kuò)展鍵狀態(tài)在原始數(shù)據(jù)的第一個字節(jié),具體如上述);松開有兩種情況,先松開哪個鍵就先發(fā)哪個鍵的斷碼;最后發(fā)最后松開的那個鍵的斷碼;4、先按擴(kuò)展鍵再按普通單鍵按下擴(kuò)展鍵發(fā)普通單鍵通碼(鍵值為擴(kuò)展鍵的鍵值);繼續(xù)按住發(fā)擴(kuò)展鍵通碼(鍵值為擴(kuò)展鍵的鍵值);按下普通單鍵發(fā)擴(kuò)展鍵通碼,(鍵值為普通單鍵的鍵值,擴(kuò)展鍵狀態(tài)在原始數(shù)據(jù)的第一個字節(jié),即沒有了普通單^t的普通單4建通碼,具體如上述);繼續(xù)按住發(fā)擴(kuò)展鍵通碼(鍵值為普通單鍵的鍵值,擴(kuò)展鍵狀態(tài)在原始數(shù)據(jù)的第一個字節(jié)。);松開有兩種情況,先松開哪個鍵就先發(fā)哪個鍵的斷碼(都是普通單鍵斷碼)最后發(fā)最后松開的那個鍵的斷碼(都是普通單鍵斷碼);所有數(shù)據(jù)是依照低位在前連續(xù)傳送。遙控(鼠標(biāo))采用如下一種^^式傳輸^:據(jù)(20bit):(導(dǎo)引頭)(4bit后面數(shù)據(jù)中l(wèi)的個數(shù))(兩個字節(jié)的數(shù)據(jù)、低位在前)其中頭4bit很重要,它表示后面數(shù)據(jù)中1的個數(shù),用來檢測錯誤。后面數(shù)據(jù)第一個字節(jié)意義表示如下bit5-bit8:是垂直位移量;bit9:鼠標(biāo)左鍵1:按下,0:松開;bitlO:鼠標(biāo)右鍵1:按下,0:松開;bitll:水平位移標(biāo)志1:向左,0:向右(正對《睫盤來講);bitl2:垂直位移標(biāo)志1:向上,0:向下(正對4囊盤來講);數(shù)據(jù)第二個字節(jié)意義表示如下bitl3-bitl6:是水平位移量;bitl7-bit20:固定為0101;單片機(jī)和上位機(jī)之間協(xié)議紅外遙控鍵盤(鼠標(biāo))使用統(tǒng)一的協(xié)議紅外鍵盤普通鍵器件代碼7AH:單字節(jié)常規(guī)按鍵;第二個字節(jié)高四位為零,低四位是遙控鍵盤前4bit;第三個字節(jié)原始數(shù)據(jù)第二個字節(jié),按鍵4定值(按照遙控鍵盤掃描碼);紅外鍵盤擴(kuò)展鍵器件代碼7BH:雙字節(jié)擴(kuò)展碼第二個字節(jié)原始數(shù)據(jù)第一個字節(jié),表示什么擴(kuò)展鍵按下;第三個字節(jié)原始數(shù)據(jù)第二個字節(jié),按鍵鍵值(按照遙控鍵盤掃描碼);紅外鼠標(biāo)器件代碼7CH;第二字節(jié)原始器件數(shù)據(jù)第一個字節(jié),X位移;第三字節(jié)原始器件數(shù)據(jù)第二個字節(jié),Y位移。遙控鍵盤(鼠標(biāo))和上位機(jī)之間沒有改變所接收到的原始數(shù)據(jù),即收到什么就往上面發(fā)什么,只不過重新打包了。遙控鍵盤的普通單鍵通碼發(fā)碼規(guī)則(單片機(jī))1、第一個碼立即發(fā);2、延時IO個碼不發(fā);3、每3個碼發(fā)一次;'4、斷碼立即發(fā)。遙控鍵盤的擴(kuò)展鍵發(fā)碼規(guī)則(單片機(jī))1、擴(kuò)展鍵的通碼立即發(fā);2、擴(kuò)展鍵的擴(kuò)展碼不發(fā);3、非擴(kuò)展鍵的擴(kuò)展碼第一個立即發(fā);4、非擴(kuò)展鍵的擴(kuò)展碼延時IO個碼不發(fā);5、非擴(kuò)展鍵的擴(kuò)展碼每3個碼發(fā)一次;6、非擴(kuò)展碼斷碼立即發(fā);7、擴(kuò)展鍵的斷碼立即發(fā)。遙控鼠標(biāo)的發(fā)碼規(guī)則(單片機(jī))1、全部數(shù)據(jù)立即發(fā)紅外如果有新的器件參數(shù),只不過導(dǎo)引頭的參數(shù),0、l時間參數(shù)不同而已,處理方法與上述方法一樣。第三實施例PS/2設(shè)備請參閱圖17,為PS/2鍵盤某個鍵通碼的波形,是鍵盤到單片機(jī)即鍵盤發(fā)送給單片機(jī)的波形,請參閱圖18,為其中一個CLK的時間波形,其中上方的波形是4t盤凝:據(jù)線,下方的波形是4定盤時鐘線,請參閱圖19,為單片機(jī)到鍵盤即單片機(jī)發(fā)送給鍵盤的波形。PS/2鼠標(biāo)的波形時間參數(shù)和PS/2鍵盤的相同,這時,單片機(jī)和上位機(jī)之間協(xié)議如下所述。PS/2鍵盤鍵盤到上位機(jī)第一字節(jié)前導(dǎo)碼普通鍵7DH,擴(kuò)展碼80H第二字節(jié)通碼OOH,斷碼08H第三字節(jié)鍵值(采用第二套鍵盤掃描碼)特殊鍵Pause掃描碼E1H,14H,77H,E1H,F0H,14H,F0H,77H串口碼通碼80H,OOH,62H斷碼80H,08H,62HPrint掃描碼EOH,12H,EOH,7CH串口碼通碼80H,OOH,7CH斷碼80H,08H,7CHPS/2鼠標(biāo)鼠標(biāo)到上位才幾第一字節(jié)前導(dǎo)碼1111XXXXB第二字節(jié)'.X位移第三字節(jié)Y位移器件代碼普通鼠標(biāo)1111XXXXB器件參數(shù)bit3(方向位)bit2(方向位)bitl(按鍵位)bitO(按鍵位)XsignYsignRBtnLBtnl:向上或向左O:向下或向右l:按下0:沒有按鍵;特殊碼FOH,OOH,OOH表示空,例如鼠標(biāo)按鍵彈起。鍵碼規(guī)則把鍵盤的第二套掃描進(jìn)行仔細(xì)的分析可以知道這套鍵碼是很有規(guī)律的,除了PRSCRN和PAUSE鍵外其他按4建可以分解為四類,這四類按^:最多只有3個字節(jié)所以可以在程序中加以判斷。這四類是一、普通通碼一個字節(jié)即它的通碼;二、普通斷碼二個字節(jié)即0F0H+它的通碼;三、擴(kuò)展通碼二個字節(jié)即OEOH+它的通碼;四、擴(kuò)展斷碼三個字節(jié)即OEOH+OFOH+它的通碼它的通碼。在這套鍵碼中OEOH、OFOH起了很重要的分類作用,鍵盤的默認(rèn)值是使用第二套鍵盤掃描碼。但是有些鍵盤就沒有使用默認(rèn)值,因此要在鍵盤的初始化過程中增加一條設(shè)置采用第二套4建盤掃描碼的命令。鼠標(biāo)鼠標(biāo)的處理過程和鍵盤大同小異,只是它們的數(shù)據(jù)內(nèi)容不同罷了。但是鼠標(biāo)也有它的特殊的地方,鼠標(biāo)上電后是默認(rèn)不發(fā)碼的,即如果沒有對鼠標(biāo)進(jìn)行初始化的話,它是不會發(fā)數(shù)據(jù)出來的。上位機(jī)到單片機(jī)的命令實現(xiàn)其他功能。串口波特率:19200,8位數(shù)據(jù),無校驗。(1)上位機(jī)要求靜音"M,,靜音,(2)上位機(jī)取消靜音"m,,(3)上位機(jī)要求版本"V"返回當(dāng)前的單片機(jī)版本信息(4)上位機(jī)要求時間"D"返回當(dāng)前的單片機(jī)版本時間信息(5)上位機(jī)要求軟關(guān)機(jī)"P"單片機(jī)進(jìn)行關(guān)機(jī)操作(帶ATX電源的機(jī)頂盒有效)(6)上位機(jī)要求重啟"R"單片機(jī)進(jìn)行上位機(jī)軟重啟操作(7)上位一幾進(jìn)入工廠測試"F,單片機(jī)進(jìn)入工廠測試看門狗(8)上位機(jī)工廠測試看門狗"f,單片機(jī)復(fù)位工廠測試看門狗。權(quán)利要求1.一種嵌入式外設(shè)統(tǒng)一接入方法,其特征在于:包括下述步驟:步驟一:首先將單片機(jī)與上位機(jī)連接;步驟二:撥接所有外設(shè):將所有的外部設(shè)備撥接到單片機(jī)上,各個外部設(shè)備都插入相對應(yīng)的插座上就完成了外部設(shè)備的撥接;步驟三:打開單片機(jī):外部設(shè)備撥接成功后打開主設(shè)備電源和單片機(jī);步驟四:初始化外設(shè):單片機(jī)打開后,即自動初始化各外部設(shè)備;步驟五:外設(shè)發(fā)送數(shù)據(jù):單片機(jī)等待某個外部設(shè)備發(fā)送數(shù)據(jù),當(dāng)外部設(shè)備需要往上位機(jī)發(fā)送數(shù)據(jù)時,首先發(fā)送至單片機(jī);步驟六:單片機(jī)接收數(shù)據(jù)并發(fā)送:單片機(jī)接收此外部設(shè)備發(fā)送的數(shù)據(jù),并打包數(shù)據(jù),以一定的數(shù)據(jù)格式發(fā)送到上位機(jī);步驟七:上位機(jī)接收數(shù)據(jù):上位機(jī)接收到打包的數(shù)據(jù)后,進(jìn)行拆包,取出有用數(shù)據(jù),進(jìn)行相應(yīng)處理。2.如權(quán)利要求1所述的一種嵌入式外設(shè)統(tǒng)一接入方法,其特征在于還包括下述步驟上位機(jī)發(fā)送數(shù)據(jù)到單片機(jī),以實現(xiàn)電源軟開關(guān)控制。3.如權(quán)利要求l所述的一種嵌入式外設(shè)統(tǒng)一接入方法,其特征在于所述外部設(shè)備包括紅外遙控器,所述紅外遙控器的波形分成三個部分導(dǎo)引頭、32bit數(shù)據(jù)、重碼,上述三個部分依照如下的格式導(dǎo)引頭…32bit數(shù)據(jù)…重碼信號…32bit數(shù)據(jù)…重碼信號,所述導(dǎo)引頭為四個字節(jié)的數(shù)據(jù),低位在前,所述32bit數(shù)據(jù)中的tdt0和bitl時間參數(shù)之間的間隔是1140us,32bit數(shù)據(jù)被分成4個字節(jié),其中第1、2個字節(jié)是表示這款遙控器的標(biāo)識符,第3個字節(jié)是表示遙控器的某個鍵的鍵值,第4個字節(jié)是第3個字節(jié)的反碼,用于錯誤檢測,所述字節(jié)數(shù)據(jù)是低位在前,連續(xù)傳送,所屬紅外遙控器每隔9Sms發(fā)一個重碼信號,直到這個鍵被松開。4.如權(quán)利要求l所述的一種嵌入式外設(shè)統(tǒng)一接入方法,其特征在于所述外部設(shè)備包括一集成一個遙控鼠標(biāo)的紅外遙控鍵盤,所述紅外遙控鍵盤的波形分成3個部分導(dǎo)引頭、校驗碼、鍵值,其中導(dǎo)引頭又包括普通單鍵、擴(kuò)展鍵、以及紅外遙控鼠標(biāo)的導(dǎo)引頭,所述三種導(dǎo)引頭的時間間隔為400us,所有數(shù)據(jù)按照低位在前連續(xù)傳送。5.如權(quán)利要求3或4所述的一種嵌入式外設(shè)統(tǒng)一接入方法,其特征在于單片機(jī)和上位機(jī)之間協(xié)議如下所述串口波特率:19200,8位數(shù)據(jù),無校驗;器件代碼ID:000H;器件代碼ID:0FFH;第三字節(jié)按鍵鍵值其中電源鍵的遙控器鍵碼如下1)02H、0FDH、00H2)OOH、0FFH、4BH電源鍵的處理是開機(jī)立即開,即關(guān)機(jī)狀態(tài)下,收到電源鍵立即開機(jī);關(guān)機(jī)延時關(guān),即開機(jī)狀態(tài)下,收到一定數(shù)量的電源鍵重碼才關(guān)機(jī)。6.如權(quán)利要求l所述的一種嵌入式外設(shè)統(tǒng)一接入方法,其特征在于所述外部設(shè)備包括PS/2設(shè)備,其單片機(jī)和上位機(jī)之間協(xié)議如下1)PS/2鍵盤鍵盤到上位機(jī)第一字節(jié)前導(dǎo)碼普通鍵7DH,擴(kuò)展碼80H第二字節(jié)通碼00H,斷碼08H第三字節(jié)鍵值(采用第二套鍵盤掃描碼)特殊鍵Pause掃描碼E1H,14H,77H,E1H,F0H,14H,F0H,77H串口碼通碼80H,OOH,62H斷碼80H,08H,62HPrint掃描碼EOH,12H,EOH,7CH串口碼通碼80H,OOH,7CH斷碼80H,08H,7CH2)PS/2鼠標(biāo)鼠標(biāo)到上位^^:第一字節(jié)前導(dǎo)碼1111XXXXB第二字節(jié)X位移第三字節(jié)Y位移器件代碼普通鼠標(biāo)1111XXXXB器件參數(shù)bit3(方向位)bit2(方向位)bitl(按鍵位)b加(按鍵位)XsignYsignRBtnLBtnl:向上或向左0:向下或向右l::t安下0:沒有按鍵;特殊碼F0H,00H,OOH表示空。7.如權(quán)利要求2所述的一種嵌入式外設(shè)統(tǒng)一接入方法,其特征在于上位機(jī)到單片機(jī)的命令串口波特率:19200,8位數(shù)據(jù),無校驗,(1)上位機(jī)要求靜音"M"靜音,(2)上位機(jī)取消靜音"m,,(3)上位機(jī)要求版本"V"返回當(dāng)前的單片機(jī)版本信息(4)上位機(jī)要求時間"D"返回當(dāng)前的單片機(jī)版本時間信息(5)上位機(jī)要求軟關(guān)機(jī)"P"單片機(jī)進(jìn)行關(guān)機(jī)操作(6)上位機(jī)要求重啟"R"單片機(jī)進(jìn)行上位機(jī)軟重啟操作。)上位機(jī)進(jìn)入工廠測試"F,單片機(jī)進(jìn)入工廠測試看門狗(8)上位機(jī)工廠測試看門狗"f,單片機(jī)復(fù)位工廠測試看門狗。全文摘要一種嵌入式外設(shè)統(tǒng)一接入方法,包括下述步驟首先將單片機(jī)與上位機(jī)連接;撥接所有外設(shè);打開單片機(jī);初始化外設(shè);單片機(jī)打開后,即自動初始化各外部設(shè)備;單片機(jī)等待某個外部設(shè)備發(fā)送數(shù)據(jù);單片機(jī)接收數(shù)據(jù)并打包發(fā)送;上位機(jī)接收數(shù)據(jù)并進(jìn)行拆包,取出有用數(shù)據(jù),進(jìn)行相應(yīng)處理。上位機(jī)還可以發(fā)送數(shù)據(jù)到單片機(jī),以實現(xiàn)電源軟開關(guān)控制。本發(fā)明嵌入式外設(shè)統(tǒng)一接入方法的優(yōu)點在于成本低、統(tǒng)一控制簡單可靠、提高上位機(jī)效率、并且可以多個外部設(shè)備同時撥接到主機(jī)。文檔編號G06F13/10GK101373460SQ200710009398公開日2009年2月25日申請日期2007年8月22日優(yōu)先權(quán)日2007年8月22日發(fā)明者邱作霖申請人:福建星網(wǎng)銳捷通訊股份有限公司