<strike id="kiyse"></strike>
  • <tr id="kiyse"></tr>
  • <strike id="kiyse"></strike><samp id="kiyse"><tbody id="kiyse"></tbody></samp>
    <strike id="kiyse"><s id="kiyse"></s></strike>
    <tr id="kiyse"></tr>
    <noframes id="kiyse"><code id="kiyse"></code></noframes>
    <th id="kiyse"></th>
    <samp id="kiyse"></samp>
  • <th id="kiyse"><s id="kiyse"></s></th>
  • 轉(zhuǎn)換精簡ISA總線為16bit總線接口

     2020-11-6     作者:Emtronix         

      為了減少精簡ISA總線的信號管腳數(shù)量,英創(chuàng)工控主板(ESM335x、ESM7000、ESM6802等)的精簡ISA總線采取了地址數(shù)據(jù)時分復(fù)用的方式,總線的寬度為8-bit,總線周期在200ns內(nèi),這樣支持10MB/s的數(shù)據(jù)率。在客戶的某些應(yīng)用場合,總線接口是獨立的地址總線和數(shù)據(jù)總線,總線寬度則為16-bit。為了支持客戶已有設(shè)計保持不變,需要把精簡ISA總線轉(zhuǎn)換為16-bit的總線格式,本文將介紹相應(yīng)的轉(zhuǎn)換電路及對應(yīng)的操作代碼。


      轉(zhuǎn)換的基本思路是使用兩個寄存器做地址寄存器,提供16-bit的地址總線,另外再使用兩個寄存器作為數(shù)據(jù)寄存器。軟件對轉(zhuǎn)換過程的數(shù)據(jù)緩存是完全透明的。


    轉(zhuǎn)換電路


      在下面的電路中,精簡ISA總線的地址A0高低分別表示16-bit地址或數(shù)據(jù)的高位字節(jié)和低位字節(jié),譯碼信號為BHE;而精簡ISA總線的地址A1的高低分別表示16-bit數(shù)據(jù)讀寫周期和16-bit地址寫周期,譯碼信號為D_A_FLG。


      采用74‘s系列經(jīng)典器件來實現(xiàn)總線的轉(zhuǎn)換,可幫組理解轉(zhuǎn)換的技術(shù)要點。在實際應(yīng)用中,把這部分電路用FPGA或CPLD來實現(xiàn)會更加簡便。


      電路圖中信號名稱帶“#”或“_B”后綴的,表示信號是低電平有效。


    轉(zhuǎn)換精簡ISA總線為16bit總線接口.png


      放大各個部分電路。


      譯碼部分:


    轉(zhuǎn)換精簡ISA總線為16bit總線接口.png


      延時展寬部分。在FPGA或CPLD中,也可采用其它電路獲得更好的效果:


    轉(zhuǎn)換精簡ISA總線為16bit總線接口.png


      總線多路切換:


    轉(zhuǎn)換精簡ISA總線為16bit總線接口.png


      上面的電路導(dǎo)出的16bit接口信號包括:

      ● BUS16_A[0..15]:16-bit地址總線;總線周期時有效,非總線周期保持原狀態(tài)。

      ● BUS16_D[0..15]:雙向16-bit數(shù)據(jù)總線;總線周期時有效,非總線周期為高阻態(tài)。

      ● BUS16_RD_B:讀脈沖,低電平有效。

      ● BUS16_WE_B:寫脈沖,低電平有效,上升沿鎖存總線數(shù)據(jù)。


    代碼實例


      在WEC7平臺ESM335x上的ISA總線操作函數(shù)如下:


    // open "ISA1:"
    HANDLE  hISA = CreateFile(_T("ISA1:"),                         // name of device
                                GENERIC_READ|GENERIC_WRITE,         // desired access
                                FILE_SHARE_READ|FILE_SHARE_WRITE,      // sharing mode
                                NULL,                                                      // security attributes
                                OPEN_EXISTING,                                    // creation disposition
                                FILE_FLAG_RANDOM_ACCESS,                    // flags/attributes
                                NULL);


      打開設(shè)備文件獲得HANDLE后,就可以對總線進行讀寫操作了。


    // convert ISA to 16-bit width for both address and data
    #define BUS16_ADDR_REG_INDEX             ((DWORD)0) // ISA_A1 = 0: address registers
    #define BUS16_DATA_REG_INDEX              ((DWORD)2) // ISA_A1 = 1: data register
     
    BOOL Isa_Read16(HANDLE hISA, WORD wPortOffset, WORD* pBuf)
    {
           DWORD dwValue;
           DWORD dwNbBytesReturn = 0;
     
           // write 16-bit address
           dwValue = (BUS16_ADDR_REG_INDEX << 16) | wPortOffset;
           WriteFile(hISA, &dwValue, sizeof(DWORD), &dwNbBytesReturn, NULL);
     
           // read 16-bit data
           *pBuf = (WORD)(BUS16_DATA_REG_INDEX & 0xFE);
           ReadFile(hISA, pBuf, sizeof(WORD), &dwNbBytesReturn, NULL);
     
           return TRUE;
    }
     
    BOOL Isa_Write16(HANDLE hISA, WORD wPortOffset, WORD wValue)
    {
           DWORD dwValue;
           DWORD dwNbBytesReturn = 0;
     
           // write 16-bit address
           dwValue = (BUS16_ADDR_REG_INDEX << 16) | wPortOffset;
           WriteFile(hISA, &dwValue, sizeof(DWORD), &dwNbBytesReturn, NULL);
     
           // write 16-bit data
           dwValue = (BUS16_DATA_REG_INDEX << 16) | wValue;
           WriteFile(hISA, &dwValue, sizeof(DWORD), &dwNbBytesReturn, NULL);
     
           return TRUE;
    }


      以上代碼也可在ESM7000 WEC7平臺上使用。在Linux平臺,客戶可編寫類似的代碼,也可請英創(chuàng)的技術(shù)編寫相應(yīng)的代碼。

    国产成人精品a视频一区| 国产精品美女久久福利网站| 国产精品美女久久久久av超清| 尤物yw午夜国产精品视频| 精品久久久久久久免费人妻| 精品无码一区二区三区爱欲| 久久精品国产99国产精品| 好吊妞这里有精品| 亚洲精品在线网站| 精品综合久久久久久97超人| 一本大道无码日韩精品影视_| 国产精品一区视频| 亚洲国产成人精品不卡青青草原| 亚洲精品无码专区久久同性男| 亚洲国产成人精品无码区花野真一 | 四虎精品亚洲一区二区三区| 精品日产卡一卡二卡国色天香 | 久久精品一区二区三区资源网| 老司机午夜精品视频播放| 无码精品尤物一区二区三区 | 四虎必出精品亚洲高清| 久久久亚洲精品国产| 久久精品国产99国产精品| 国产成人精品综合| 精品一区二区三人妻视频 | 亚洲人成在线精品| 久久久久亚洲精品影视| 亚洲精品无码精品mV在线观看| 一本久久伊人热热精品中文| 精品无码国产AV一区二区三区| 一色屋成人免费精品网站| 久久国产精品一国产精品金尊| 久久久久国产精品| 国产综合免费精品久久久| 免费看一级毛片在线观看精品视频| 精品国产一区二区三区AV| 99在线精品视频在线观看| 中文字幕精品一区影音先锋 | 国产精品真实对白精彩久久| 91精品久久久久久久99蜜桃 | 91国内揄拍国内精品对白不卡|