EM9000是英創(chuàng)公司極具特色的一款ARM9工控主板。經(jīng)過(guò)長(zhǎng)時(shí)間的完善,現(xiàn)系統(tǒng)已完全穩(wěn)定。這其間,EM9000已在應(yīng)用的版本多達(dá)4個(gè),分別是:EM9000 V8、EM9000 V9、EM9000 V9.1、EM9000 V10.1。
它們各自的特點(diǎn)及改進(jìn):
·EM9000 V8:它的最大特點(diǎn)是系統(tǒng)可以使用DOC作為外部擴(kuò)展的存貯設(shè)備。
·EM9000 V9:在系統(tǒng)中新增加了NANDFLASH,作為系統(tǒng)的常規(guī)存貯器,還將系統(tǒng)的IDE控制器信號(hào)引出了系統(tǒng),以方便擴(kuò)展外部存貯設(shè)備。同時(shí),將原有的DOC擴(kuò)展口去掉。
·EM9000 V9.1:改善了系統(tǒng)的啟動(dòng),系統(tǒng)引出了第二條中斷信號(hào)到ISA總線。
·EM9000 V10.1:在系統(tǒng)中新增了LVDS接口以直接支持更多高清的LCD屏,還新擴(kuò)展了一個(gè)串口以提供給用戶使用,即系統(tǒng)擁有4個(gè)獨(dú)立的用戶可使用的串口。
由于EM9000V10.1新增加了一個(gè)獨(dú)立的串口,與這之前的系統(tǒng)在串口資源上出現(xiàn)了一些變化,具體變化如下表:
物理串口 |
EM9000 V8 - V9.1 |
EM9000 V10.1 |
COM1 |
調(diào)試串口 |
COM1 |
COM2 |
COM1 |
COM2 |
COM3 |
COM2 |
COM3 |
COM4 |
COM3 |
COM4 |
在上表中,“COM1:”表示應(yīng)用軟件中要打開(kāi)的物理串口所對(duì)應(yīng)的設(shè)備名稱。
從表中可以知道,V8-V9版的EM9000,應(yīng)用程序只有3個(gè)串口可用,即物理串口COM2 - COM4,且物理串口與系統(tǒng)中的串口設(shè)備名稱沒(méi)有對(duì)應(yīng)起來(lái),V10.1及以后版本的系統(tǒng)中,應(yīng)用程序有4個(gè)串口可用,物理串口與應(yīng)用程序中的串口設(shè)置備名稱是一一對(duì)應(yīng)的。因此,用戶在使用EM9000V10.1版本替換以前的系統(tǒng)時(shí),就會(huì)出現(xiàn)串口資源不對(duì)應(yīng)的現(xiàn)象。為了解決系統(tǒng)的兼容問(wèn)題,英創(chuàng)公司修改了EM9000_ISA_API.lib和EM9000_ISA_API.h文件,新增了讀取系統(tǒng)版本的函數(shù)EM9000_Version()。通過(guò)該函數(shù)可以識(shí)別到系統(tǒng)的版本,從而,可根據(jù)上面的表格中,對(duì)串口進(jìn)行合理的安排及應(yīng)用。該函數(shù)的描述如下:
// 功能描述: 返回EM9000板卡的硬件版本信息。
// 返回值 = 0: EM9000 V8版或更早版本。
// = 1: EM9000 V9。
// = 2: EM9000 V9.1。
// = 3: EM9000 V9.2。
// = 4: EM9000 V10.1。
// = -1: 未知型號(hào)的板卡
int EM9000_Version();
下面的代碼就是利用該函數(shù)來(lái)讀取系統(tǒng)的版本號(hào)以設(shè)置正確的串口設(shè)備名稱。
TCHAR szPort[20]; // 要打開(kāi)的串口設(shè)備名稱
HANDLE SerHandle; // 打開(kāi)的串口設(shè)備的handle
int PortNo; // 要打開(kāi)的物理串口號(hào),僅為:1、2、3、4有效
………
// 設(shè)置串口名稱
// 如讀取出來(lái)的版本號(hào)為4(V10.1)或是以后的版本,則物理串口與串口設(shè)備名稱對(duì)應(yīng)
// 如讀取出來(lái)的版本號(hào)低于4(版本低于V10.1),則物理串口需要減1,才是所對(duì)應(yīng)的串口設(shè)備名稱
if(EM9000_Version() >= 4)
wsprintf(szPort, L'COM%d:', PortNo);
else
wsprintf(szPort, L'COM%d:', PortNo-1);
SerHandle = CreateFile( szPort, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0); // 打開(kāi)串口設(shè)置
相當(dāng)一部分客戶已把EM9000 V9版作為部件應(yīng)用到其產(chǎn)品中,自然希望應(yīng)用程序能夠完全不修改的在EM9000 V10上運(yùn)行。為此,我們專門(mén)在EM9000 V10板中增加了把EM9000 V10設(shè)置成EM9000 V9的命令“setver”。具體操作如下:
\> setver 9
上述操作把板卡設(shè)置成V9模式。重起系統(tǒng)后,即按EM9000 V9完全兼容模式運(yùn)行。若要把板子設(shè)置回V10的狀態(tài),只需運(yùn)行:
\> setver 10
注意,當(dāng)設(shè)置成V9模式后,應(yīng)用程序就不能操作EM9000 V10的物理串口1了。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6086瀏覽量
35523
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論