S232進行ASCII碼通信時,在接收端數(shù)字處理芯片不知道發(fā)射端計算機信 號波特率的情況下,不需要檢測碼即可對信號的波特率進行智能檢測。檢測的范圍涵蓋了 所有可能的RS232波特率。
[0095] 本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過 程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機或數(shù)字處理芯片可讀取存儲 介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:R0M、 Flash存儲器等各種可以存儲程序代碼的介質(zhì)。
[0096] 以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何 熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵 蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準。
【主權(quán)項】
1. 一種檢測RS232串口波特率的方法,所述RS232用于連接計算機和數(shù)字處理芯片,以 使得所述計算機和所述數(shù)字處理芯片采用標準ASCII碼進行數(shù)據(jù)傳輸,其特征在于,所述 方法包括如下步驟: 所述數(shù)字處理芯片采用數(shù)據(jù)線依次接收通過所述RS232串口傳輸?shù)亩鄠€數(shù)據(jù)字;每個 數(shù)據(jù)字的比特位依次為1個比特的起始位,8個比特的數(shù)據(jù)位,1個比特的校驗位,以及1個 比特的高電平結(jié)束位;或者所述每個數(shù)據(jù)字的比特位依次為1個比特的起始位,8個比特的 數(shù)據(jù)位,以及1個比特的高電平結(jié)束位; 檢測任意一個數(shù)據(jù)字第一低電平的時長、第一高電平的時長、第二低電平的時長,所述 數(shù)據(jù)字起始位的開始時刻為所述數(shù)據(jù)字第一低電平的開始時刻,所述數(shù)據(jù)字第一低電平的 結(jié)束時刻為所述數(shù)據(jù)字第一高電平的開始時刻,所述數(shù)據(jù)字第一高電平的結(jié)束時刻為所述 數(shù)據(jù)字第二低電平的開始時刻; 根據(jù)所述數(shù)據(jù)字第一低電平的時長、所述數(shù)據(jù)字第一高電平的時長以及所述數(shù)據(jù)字第 二低電平的時長,確定所述RS232串口波特率。2. 根據(jù)權(quán)利要求1所述的檢測RS232串口波特率的方法,其特征在于,在數(shù)字處理芯片 采用數(shù)據(jù)線依次接收通過所述RS232串口傳輸?shù)亩鄠€數(shù)據(jù)字之前,所述方法還包括: 計算并記錄所述RS232的每個串口波特率對應(yīng)傳輸1個比特位所需時長的1倍至10 倍的數(shù)值。3. 根據(jù)權(quán)利要求2所述的檢測RS232串口波特率的方法,其特征在于,計算并記錄所述 RS232的每個串口波特率對應(yīng)傳輸1個比特位所需時長的1倍至10倍的數(shù)值,具體包括: 以表格的形式記錄所述RS232的每個串口波特率對應(yīng)傳輸1個比特位所需時長的1倍 至10倍的數(shù)值,其中,表格的第一列為從小到大排列的所述RS232各個串口波特率,所述表 格的第二列至第十一列依次為每個串口波特率對應(yīng)傳輸1個比特位所需時長的1倍至10 倍的數(shù)值,所述RS232的串口波特率包括1200波特,2400波特,4800波特,9600波特,19200 波特,38400波特,115200波特,所述每個串口波特率對應(yīng)傳輸1個比特位所需時長以檢測 時鐘周期為單位進行表示,其中所述檢測時鐘周期為115200波特率數(shù)據(jù)周期的l/2 n,n為 自然數(shù)。4. 根據(jù)權(quán)利要求3所述的檢測RS232串口波特率的方法,其特征在于,所述根據(jù)所述 數(shù)據(jù)字第一低電平的時長、所述數(shù)據(jù)字第一高電平的時長以及所述數(shù)據(jù)字第二低電平的時 長,確定所述RS232串口波特率,具體包括: 若所述數(shù)據(jù)字第一低電平的時長為第一波特率傳輸1個比特位所需時長的9倍,則確 定所述RS232串口波特率為所述第一波特率; 若所述數(shù)據(jù)字第一低電平的時長為第二波特率傳輸1個比特位所需時長的5倍,或者 若所述數(shù)據(jù)字第一低電平的時長為第三波特率傳輸1個比特位所需時長的10倍,則確定所 述RS232串口波特率為所述第二波特率或者所述第三波特率,所述第二波特率為所述第三 波特率的兩倍。5. 根據(jù)權(quán)利要求4所述的檢測RS232串口波特率的方法,其特征在于,所述確定所述 RS232串口波特率為所述第二波特率或者所述第三波特率,具體包括: 采用所述第二波特率接收所述RS232串口傳輸?shù)牡谝粩?shù)據(jù)字,若所述第一數(shù)據(jù)字滿足 起始位為低電平,數(shù)據(jù)位中的最高位為低電平,且結(jié)束位為高電平,則所述第二波特率為所 述RS232串口波特率,否則所述第三波特率為所述RS232串口波特率; 或者,采用所述第三波特率接收所述RS232串口傳輸?shù)牡诙?shù)據(jù)字,若所述第二數(shù)據(jù) 字滿足起始位為低電平,數(shù)據(jù)位中的最高位為低電平,且結(jié)束位為高電平,則所述第三波特 率為所述RS232串口波特率,否則所述第二波特率為所述RS232串口波特率。6. 根據(jù)權(quán)利要求3所述的檢測RS232串口波特率的方法,其特征在于,所述根據(jù)所述 數(shù)據(jù)字第一低電平的時長,所述數(shù)據(jù)字第一高電平的時長以及所述數(shù)據(jù)字第二低電平的時 長,確定所述RS232串口波特率,還具體包括: 若所述數(shù)據(jù)字第一低電平的時長、所述數(shù)據(jù)字第一高電平的時長和所述數(shù)據(jù)字第二低 電平的時長存在公約數(shù)5,則所述數(shù)據(jù)字第一高電平的時長除以公約數(shù)5之后的值即為所 述RS232串口波特率; 若所述數(shù)據(jù)字第一低電平的時長、所述數(shù)據(jù)字第一高電平的時長和所述數(shù)據(jù)字第二低 電平的時長存在公約數(shù)7,則所述數(shù)據(jù)字第一高電平的時長除以公約數(shù)7之后的值即為所 述RS232串口波特率; 若所述數(shù)據(jù)字第一低電平的時長、所述數(shù)據(jù)字第一高電平的時長和所述數(shù)據(jù)字第二低 電平的時長存在公約數(shù)3,則所述數(shù)據(jù)字第一高電平的時長除以公約數(shù)3之后的值為第四 波特率,所述數(shù)據(jù)字第一高電平的時長除以公約數(shù)3之后的值的兩倍為第五波特率,確定 所述RS232串口波特率為所述第四波特率或者所述第五波特率,所述第四波特率為所述第 五波特率的兩倍; 若所述數(shù)據(jù)字第一低電平的時長、所述數(shù)據(jù)字第一高電平的時長和所述數(shù)據(jù)字第二低 電平的時長不存在公約數(shù)3、公約數(shù)5、公約數(shù)7和公約數(shù)9,則所述數(shù)據(jù)字第一低電平的時 長、所述數(shù)據(jù)字第一高電平的時長和所述數(shù)據(jù)字第二低電平的時長的最大公約數(shù)的值為第 六波特率,所述第六波特率的兩倍為第七波特率,確定所述RS232串口波特率為所述第六 波特率或者所述第七波特率。7. 根據(jù)權(quán)利要求6所述的檢測RS232串口波特率的方法,其特征在于,所述確定所述 RS232串口波特率為所述第四波特率或者所述第五波特率,具體包括: 采用所述第四波特率接收所述RS232串口傳輸?shù)牡谌龜?shù)據(jù)字,若所述第三數(shù)據(jù)字滿足 起始位為低電平,數(shù)據(jù)位中的最高位為低電平,且結(jié)束位為高電平,則所述第四波特率為所 述RS232串口波特率,否則所述第五波特率為所述RS232串口波特率; 或者,采用所述第五波特率接收所述RS232串口傳輸?shù)牡谒臄?shù)據(jù)字,若所述第四數(shù)據(jù) 字滿足起始位為低電平,數(shù)據(jù)位中的最高位為低電平,且結(jié)束位為高電平,則所述第五波特 率為所述RS232串口波特率,否則所述第四波特率為所述RS232串口波特率。8. 根據(jù)權(quán)利要求6所述的檢測RS232串口波特率的方法,其特征在于,所述確定所述 RS232串口波特率為所述第六波特率或者所述第七波特率,具體包括: 采用所述第六波特率接收所述RS232串口傳輸?shù)牡谖鍞?shù)據(jù)字,若所述第五數(shù)據(jù)字滿足 起始位為低電平,數(shù)據(jù)位中的最高位為低電平,且結(jié)束位為高電平,則所述第六波特率為所 述RS232串口波特率,否則所述第七波特率為所述RS232串口波特率; 或者,采用所述第七波特率接收所述RS232串口傳輸?shù)诹鶖?shù)據(jù)字,若所述第六數(shù)據(jù)字 滿足起始位為低電平,數(shù)據(jù)位中的最高位為低電平,且結(jié)束位為高電平,則所述第七波特率 為所述RS232串口波特率,否則所述第六波特率為所述RS232串口波特率。9.根據(jù)權(quán)利要求1所述的檢測RS232串口波特率的方法,其特征在于,若所述數(shù)字處理 芯片檢測到所述數(shù)據(jù)線上高電平的持續(xù)時長大于或者等于10毫秒,則確定由所述高電平 跳變至所述低電平時即為所述數(shù)據(jù)字起始位的開始時刻。
【專利摘要】本發(fā)明屬于通信領(lǐng)域,公開了一種檢測RS232串口波特率的方法。該方法包括如下步驟:數(shù)字處理芯片采用數(shù)據(jù)線依次接收通過所述RS232串口傳輸?shù)亩鄠€數(shù)據(jù)字;檢測所述數(shù)據(jù)字的第一低電平的時長、第一高電平的時長、第二低電平的時長;根據(jù)所述第一低電平的時長、所述第一高電平的時長以及所述第二低電平的時長,確定所述RS232串口波特率,不需要檢測碼即可對信號的波特率進行智能檢測。
【IPC分類】G06F11/22
【公開號】CN105095038
【申請?zhí)枴緾N201510582005
【發(fā)明人】陳杰
【申請人】西安航空學院
【公開日】2015年11月25日
【申請日】2015年9月14日