胡慶武 于穎
摘要:近年,嵌入式系統(tǒng)的設(shè)計(jì)被應(yīng)用到越來越多的領(lǐng)域,但由于嵌入式操作系統(tǒng)的應(yīng)用是與硬件設(shè)計(jì)緊密相關(guān)的,因此,根據(jù)不同的應(yīng)用環(huán)境,需對(duì)uClinux內(nèi)核源碼進(jìn)行適當(dāng)?shù)男薷?。文中根?jù)實(shí)際工程設(shè)計(jì)案例,對(duì)串行接口電路的硬件設(shè)計(jì)與uClinux內(nèi)核的裁剪進(jìn)行了詳細(xì)的描述,為uClinux操作系統(tǒng)在嵌入式領(lǐng)域的應(yīng)用起到了一定的借鑒作用。
關(guān)鍵詞:串口電路;uClinux;嵌入式系統(tǒng);裁剪
中圖分類號(hào):TP368 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)13-3148-02
The Disign of Serical Circuit Based on uClinux Embedded System
HU Qing-wu, YU Ying
(Shenyang Aircraft Design and Research Institute, Shenyang 110035, China)
Abstract: Recently, embedded system is used in more and more domain, but because it is based on the hardware circuit, so uClinux kernel must be edit according to different enviroment. This paper based on the engineering case, elaborate how to design hardware and how to edit the uClinux kernel. This solution is useful for the uClinux embedded systems engineer application.
Key words: Serial circuit; uClinux; Embedded system; Edit
根據(jù)實(shí)驗(yàn)任務(wù)的需要,實(shí)現(xiàn)上位機(jī)與下位機(jī)之間的快速數(shù)據(jù)傳輸,構(gòu)建了以S3C4510B芯片為核心,配以存儲(chǔ)容量為2M的Flash存儲(chǔ)器,存儲(chǔ)容量為16M的SDRAM寄存器,成功的將以串行接口電路為信息交換窗口的嵌入式系統(tǒng)應(yīng)用到實(shí)際工程中。
1 硬件電路設(shè)計(jì)
1.1 Flash存儲(chǔ)器接口電路設(shè)計(jì)
本系統(tǒng)選用了一片HY29LV160,其單片存儲(chǔ)容量為2M字節(jié),用于存放程序代碼,系統(tǒng)上電或復(fù)位后從此處獲取指令開始執(zhí)行。因此,若要將Flash存儲(chǔ)器配置到指定路徑下,需在硬件設(shè)計(jì)時(shí)考慮存儲(chǔ)器CE端、OE端、BYTE位的連接方式[1][2],本系統(tǒng)電路連接方式如圖1所示。
圖1 Flash存儲(chǔ)器設(shè)計(jì)電路
1.2 串行接口電路設(shè)計(jì)
串口電路在本系統(tǒng)中用于完成最終的通信功能,由于RS-232標(biāo)準(zhǔn)所定義的高、低電平信號(hào)與本系統(tǒng)所選用的硬件不同,因此,在硬件設(shè)計(jì)時(shí),選用了MAX232芯片作為電平轉(zhuǎn)換器,具體硬件連接方式如圖2所示。
圖2 串行接口設(shè)計(jì)電路
2 針對(duì)硬件設(shè)計(jì)的uClinux內(nèi)核修改
2.1 片內(nèi)寄存器的修改
在hardware.h中定義了本系統(tǒng)的時(shí)鐘頻率為50 MHz:
#define fMCLK_MHz ( 50 * MHz)
通過ROM/SRAM/Flash Bank0 與DRAM/SDRAM/Bank0 ,分別定義了16位數(shù)據(jù)寬度與
32位數(shù)據(jù)寬度[3]。
# define DSR (2<<0)
# define DSD (3<<12)
2.2 cnofig.in與hardware.h文件的修改
為滿足本系統(tǒng)所需的存儲(chǔ)器空間,對(duì)config.in文件與hardware.h文件進(jìn)行修改:
#define ROM_BASE0 ((0x00000000>>16) <<10)
# define SDRAM_BASE0 ((0x01000000)>>16)<<10)
#define SDRAM_NEXT0 ((0x02000000>>16)<<20)
#define ROM_NEXT0 ((0x00200000>>16)<<20)
2.3 Makefile文件的修改
在Makefile文件中,需要修改uClinux的運(yùn)行地址,即程序開始執(zhí)行的地址,也即Flash中前64K的位置。具體方式如下:
ZREALADDR=0x00008000
ZTEXTADDR=0x00010000
2.4 配置文件的修改
為了控制配置文件的顯示[4]與編譯內(nèi)核時(shí)的宏,符合本系統(tǒng)所設(shè)計(jì)的16M的SDRAM需求,對(duì)配置文件進(jìn)行如下修改:
FLASH_MEM_BASE 0x01000000
2.5 波特率的設(shè)定
內(nèi)核默認(rèn)的波特率是19200,N,8,1,無流控。與本系統(tǒng)相符,因此不需要改動(dòng)。
通過make image指令對(duì)內(nèi)核進(jìn)行編譯,系統(tǒng)可以成功運(yùn)行。至此,根據(jù)文中所設(shè)定的硬件環(huán)境,針對(duì)uClinux內(nèi)核的裁剪已經(jīng)全部完成,基于uClinux嵌入式操作系統(tǒng)的串行接口電路可以成功的將編譯后內(nèi)核程序燒入到Flash芯片中,并進(jìn)行上位機(jī)與下位機(jī)之間的正常通信。
3 總結(jié)
文中針對(duì)特定的硬件設(shè)計(jì),詳細(xì)介紹了基于uClinux嵌入式操作系統(tǒng)的串行接口電路設(shè)計(jì)方法,隨著嵌入式系統(tǒng)的普及,像uClinux這種內(nèi)核裁剪靈活的操作系統(tǒng),必將應(yīng)用到越來越多的工程領(lǐng)域。
參考文獻(xiàn):
[1] 楊德斌,吳海濤,李慧斌.基于ARM-uClinux的在線數(shù)據(jù)采集前端機(jī)[J].儀表技術(shù)與傳感器,2007(3):19-20.
[2] 黃江平,吳昊.基于ARM和CC-Link的恒壓供水加壓站設(shè)計(jì)[J].儀表技術(shù)與傳感器,2012(4):48-50.
[3] 李光駒.ARM應(yīng)用系統(tǒng)開發(fā)詳解[M].北京:清華大學(xué)出版社,2004.
[4] 黃慶生.Linux基礎(chǔ)教程[M].北京:人民郵電出版社,1999.
摘要:近年,嵌入式系統(tǒng)的設(shè)計(jì)被應(yīng)用到越來越多的領(lǐng)域,但由于嵌入式操作系統(tǒng)的應(yīng)用是與硬件設(shè)計(jì)緊密相關(guān)的,因此,根據(jù)不同的應(yīng)用環(huán)境,需對(duì)uClinux內(nèi)核源碼進(jìn)行適當(dāng)?shù)男薷?。文中根?jù)實(shí)際工程設(shè)計(jì)案例,對(duì)串行接口電路的硬件設(shè)計(jì)與uClinux內(nèi)核的裁剪進(jìn)行了詳細(xì)的描述,為uClinux操作系統(tǒng)在嵌入式領(lǐng)域的應(yīng)用起到了一定的借鑒作用。
關(guān)鍵詞:串口電路;uClinux;嵌入式系統(tǒng);裁剪
中圖分類號(hào):TP368 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)13-3148-02
The Disign of Serical Circuit Based on uClinux Embedded System
HU Qing-wu, YU Ying
(Shenyang Aircraft Design and Research Institute, Shenyang 110035, China)
Abstract: Recently, embedded system is used in more and more domain, but because it is based on the hardware circuit, so uClinux kernel must be edit according to different enviroment. This paper based on the engineering case, elaborate how to design hardware and how to edit the uClinux kernel. This solution is useful for the uClinux embedded systems engineer application.
Key words: Serial circuit; uClinux; Embedded system; Edit
根據(jù)實(shí)驗(yàn)任務(wù)的需要,實(shí)現(xiàn)上位機(jī)與下位機(jī)之間的快速數(shù)據(jù)傳輸,構(gòu)建了以S3C4510B芯片為核心,配以存儲(chǔ)容量為2M的Flash存儲(chǔ)器,存儲(chǔ)容量為16M的SDRAM寄存器,成功的將以串行接口電路為信息交換窗口的嵌入式系統(tǒng)應(yīng)用到實(shí)際工程中。
1 硬件電路設(shè)計(jì)
1.1 Flash存儲(chǔ)器接口電路設(shè)計(jì)
本系統(tǒng)選用了一片HY29LV160,其單片存儲(chǔ)容量為2M字節(jié),用于存放程序代碼,系統(tǒng)上電或復(fù)位后從此處獲取指令開始執(zhí)行。因此,若要將Flash存儲(chǔ)器配置到指定路徑下,需在硬件設(shè)計(jì)時(shí)考慮存儲(chǔ)器CE端、OE端、BYTE位的連接方式[1][2],本系統(tǒng)電路連接方式如圖1所示。
圖1 Flash存儲(chǔ)器設(shè)計(jì)電路
1.2 串行接口電路設(shè)計(jì)
串口電路在本系統(tǒng)中用于完成最終的通信功能,由于RS-232標(biāo)準(zhǔn)所定義的高、低電平信號(hào)與本系統(tǒng)所選用的硬件不同,因此,在硬件設(shè)計(jì)時(shí),選用了MAX232芯片作為電平轉(zhuǎn)換器,具體硬件連接方式如圖2所示。
圖2 串行接口設(shè)計(jì)電路
2 針對(duì)硬件設(shè)計(jì)的uClinux內(nèi)核修改
2.1 片內(nèi)寄存器的修改
在hardware.h中定義了本系統(tǒng)的時(shí)鐘頻率為50 MHz:
#define fMCLK_MHz ( 50 * MHz)
通過ROM/SRAM/Flash Bank0 與DRAM/SDRAM/Bank0 ,分別定義了16位數(shù)據(jù)寬度與
32位數(shù)據(jù)寬度[3]。
# define DSR (2<<0)
# define DSD (3<<12)
2.2 cnofig.in與hardware.h文件的修改
為滿足本系統(tǒng)所需的存儲(chǔ)器空間,對(duì)config.in文件與hardware.h文件進(jìn)行修改:
#define ROM_BASE0 ((0x00000000>>16) <<10)
# define SDRAM_BASE0 ((0x01000000)>>16)<<10)
#define SDRAM_NEXT0 ((0x02000000>>16)<<20)
#define ROM_NEXT0 ((0x00200000>>16)<<20)
2.3 Makefile文件的修改
在Makefile文件中,需要修改uClinux的運(yùn)行地址,即程序開始執(zhí)行的地址,也即Flash中前64K的位置。具體方式如下:
ZREALADDR=0x00008000
ZTEXTADDR=0x00010000
2.4 配置文件的修改
為了控制配置文件的顯示[4]與編譯內(nèi)核時(shí)的宏,符合本系統(tǒng)所設(shè)計(jì)的16M的SDRAM需求,對(duì)配置文件進(jìn)行如下修改:
FLASH_MEM_BASE 0x01000000
2.5 波特率的設(shè)定
內(nèi)核默認(rèn)的波特率是19200,N,8,1,無流控。與本系統(tǒng)相符,因此不需要改動(dòng)。
通過make image指令對(duì)內(nèi)核進(jìn)行編譯,系統(tǒng)可以成功運(yùn)行。至此,根據(jù)文中所設(shè)定的硬件環(huán)境,針對(duì)uClinux內(nèi)核的裁剪已經(jīng)全部完成,基于uClinux嵌入式操作系統(tǒng)的串行接口電路可以成功的將編譯后內(nèi)核程序燒入到Flash芯片中,并進(jìn)行上位機(jī)與下位機(jī)之間的正常通信。
3 總結(jié)
文中針對(duì)特定的硬件設(shè)計(jì),詳細(xì)介紹了基于uClinux嵌入式操作系統(tǒng)的串行接口電路設(shè)計(jì)方法,隨著嵌入式系統(tǒng)的普及,像uClinux這種內(nèi)核裁剪靈活的操作系統(tǒng),必將應(yīng)用到越來越多的工程領(lǐng)域。
參考文獻(xiàn):
[1] 楊德斌,吳海濤,李慧斌.基于ARM-uClinux的在線數(shù)據(jù)采集前端機(jī)[J].儀表技術(shù)與傳感器,2007(3):19-20.
[2] 黃江平,吳昊.基于ARM和CC-Link的恒壓供水加壓站設(shè)計(jì)[J].儀表技術(shù)與傳感器,2012(4):48-50.
[3] 李光駒.ARM應(yīng)用系統(tǒng)開發(fā)詳解[M].北京:清華大學(xué)出版社,2004.
[4] 黃慶生.Linux基礎(chǔ)教程[M].北京:人民郵電出版社,1999.
摘要:近年,嵌入式系統(tǒng)的設(shè)計(jì)被應(yīng)用到越來越多的領(lǐng)域,但由于嵌入式操作系統(tǒng)的應(yīng)用是與硬件設(shè)計(jì)緊密相關(guān)的,因此,根據(jù)不同的應(yīng)用環(huán)境,需對(duì)uClinux內(nèi)核源碼進(jìn)行適當(dāng)?shù)男薷?。文中根?jù)實(shí)際工程設(shè)計(jì)案例,對(duì)串行接口電路的硬件設(shè)計(jì)與uClinux內(nèi)核的裁剪進(jìn)行了詳細(xì)的描述,為uClinux操作系統(tǒng)在嵌入式領(lǐng)域的應(yīng)用起到了一定的借鑒作用。
關(guān)鍵詞:串口電路;uClinux;嵌入式系統(tǒng);裁剪
中圖分類號(hào):TP368 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)13-3148-02
The Disign of Serical Circuit Based on uClinux Embedded System
HU Qing-wu, YU Ying
(Shenyang Aircraft Design and Research Institute, Shenyang 110035, China)
Abstract: Recently, embedded system is used in more and more domain, but because it is based on the hardware circuit, so uClinux kernel must be edit according to different enviroment. This paper based on the engineering case, elaborate how to design hardware and how to edit the uClinux kernel. This solution is useful for the uClinux embedded systems engineer application.
Key words: Serial circuit; uClinux; Embedded system; Edit
根據(jù)實(shí)驗(yàn)任務(wù)的需要,實(shí)現(xiàn)上位機(jī)與下位機(jī)之間的快速數(shù)據(jù)傳輸,構(gòu)建了以S3C4510B芯片為核心,配以存儲(chǔ)容量為2M的Flash存儲(chǔ)器,存儲(chǔ)容量為16M的SDRAM寄存器,成功的將以串行接口電路為信息交換窗口的嵌入式系統(tǒng)應(yīng)用到實(shí)際工程中。
1 硬件電路設(shè)計(jì)
1.1 Flash存儲(chǔ)器接口電路設(shè)計(jì)
本系統(tǒng)選用了一片HY29LV160,其單片存儲(chǔ)容量為2M字節(jié),用于存放程序代碼,系統(tǒng)上電或復(fù)位后從此處獲取指令開始執(zhí)行。因此,若要將Flash存儲(chǔ)器配置到指定路徑下,需在硬件設(shè)計(jì)時(shí)考慮存儲(chǔ)器CE端、OE端、BYTE位的連接方式[1][2],本系統(tǒng)電路連接方式如圖1所示。
圖1 Flash存儲(chǔ)器設(shè)計(jì)電路
1.2 串行接口電路設(shè)計(jì)
串口電路在本系統(tǒng)中用于完成最終的通信功能,由于RS-232標(biāo)準(zhǔn)所定義的高、低電平信號(hào)與本系統(tǒng)所選用的硬件不同,因此,在硬件設(shè)計(jì)時(shí),選用了MAX232芯片作為電平轉(zhuǎn)換器,具體硬件連接方式如圖2所示。
圖2 串行接口設(shè)計(jì)電路
2 針對(duì)硬件設(shè)計(jì)的uClinux內(nèi)核修改
2.1 片內(nèi)寄存器的修改
在hardware.h中定義了本系統(tǒng)的時(shí)鐘頻率為50 MHz:
#define fMCLK_MHz ( 50 * MHz)
通過ROM/SRAM/Flash Bank0 與DRAM/SDRAM/Bank0 ,分別定義了16位數(shù)據(jù)寬度與
32位數(shù)據(jù)寬度[3]。
# define DSR (2<<0)
# define DSD (3<<12)
2.2 cnofig.in與hardware.h文件的修改
為滿足本系統(tǒng)所需的存儲(chǔ)器空間,對(duì)config.in文件與hardware.h文件進(jìn)行修改:
#define ROM_BASE0 ((0x00000000>>16) <<10)
# define SDRAM_BASE0 ((0x01000000)>>16)<<10)
#define SDRAM_NEXT0 ((0x02000000>>16)<<20)
#define ROM_NEXT0 ((0x00200000>>16)<<20)
2.3 Makefile文件的修改
在Makefile文件中,需要修改uClinux的運(yùn)行地址,即程序開始執(zhí)行的地址,也即Flash中前64K的位置。具體方式如下:
ZREALADDR=0x00008000
ZTEXTADDR=0x00010000
2.4 配置文件的修改
為了控制配置文件的顯示[4]與編譯內(nèi)核時(shí)的宏,符合本系統(tǒng)所設(shè)計(jì)的16M的SDRAM需求,對(duì)配置文件進(jìn)行如下修改:
FLASH_MEM_BASE 0x01000000
2.5 波特率的設(shè)定
內(nèi)核默認(rèn)的波特率是19200,N,8,1,無流控。與本系統(tǒng)相符,因此不需要改動(dòng)。
通過make image指令對(duì)內(nèi)核進(jìn)行編譯,系統(tǒng)可以成功運(yùn)行。至此,根據(jù)文中所設(shè)定的硬件環(huán)境,針對(duì)uClinux內(nèi)核的裁剪已經(jīng)全部完成,基于uClinux嵌入式操作系統(tǒng)的串行接口電路可以成功的將編譯后內(nèi)核程序燒入到Flash芯片中,并進(jìn)行上位機(jī)與下位機(jī)之間的正常通信。
3 總結(jié)
文中針對(duì)特定的硬件設(shè)計(jì),詳細(xì)介紹了基于uClinux嵌入式操作系統(tǒng)的串行接口電路設(shè)計(jì)方法,隨著嵌入式系統(tǒng)的普及,像uClinux這種內(nèi)核裁剪靈活的操作系統(tǒng),必將應(yīng)用到越來越多的工程領(lǐng)域。
參考文獻(xiàn):
[1] 楊德斌,吳海濤,李慧斌.基于ARM-uClinux的在線數(shù)據(jù)采集前端機(jī)[J].儀表技術(shù)與傳感器,2007(3):19-20.
[2] 黃江平,吳昊.基于ARM和CC-Link的恒壓供水加壓站設(shè)計(jì)[J].儀表技術(shù)與傳感器,2012(4):48-50.
[3] 李光駒.ARM應(yīng)用系統(tǒng)開發(fā)詳解[M].北京:清華大學(xué)出版社,2004.
[4] 黃慶生.Linux基礎(chǔ)教程[M].北京:人民郵電出版社,1999.