Professional Documents
Culture Documents
LUN VN TT NGHIP I HC
PHN DNH CHO KHOA B MN Ngi duyt (chm s b): ___________________________ n v: __________________________________________ Ngy bo v: ______________________________________ im tng kt: ____________________________________ Ni lu tr lu n n: ________________________________
CNG HA X HI CH NGHA VIT NAM c lp T do Hnh phc -------------------------Ngy ____ thng ____ nm _____
CNG HA X HI CH NGHA VIT NAM c lp T do Hnh phc -------------------------Ngy ____ thng ____ nm _____
LI CM N
Knh gi n thy TRNH HONG HN li cm n chn thnh v su sc, cm n thy tn tnh hng dn, ch dy em hon thnh lun vn tt nghip ny. Em xin cm n tt c qu thy c trng i hc Bch Khoa TP.HCM ni chung, qu thy c khoa in-in t v b mn K thut in ni ring tn tnh ging d y, trang b cho em nhng kin thc b ch trong khong thi gian i hc. Ti xin cm n tt c bn b l ngun ng vin, gp , gip ti rt nhiu trong qu trnh hc tp v thc hin lun vn. Ti xin cm n tt c.
TM TT LUN VN
Nhim v ca ti l thit k mt robot t hnh vi b iu khin da trn h iu hnh Linux nhng. ti c thc hin nh sau: Tm hiu cc thnh phn ca mt robot t hnh, bao gm c v phn cng v phn mm. Phn tch gii php s dng h thng nhng vi h iu hnh Embedded Linux vo iu khin Robot. Tm hiu v la chn thi cng mt m hnh c kh robot t hnh: m hnh Robot t hnh vi 3 bnh xe Omni-Directional. Tm hiu m ch Micro2440, bao gm tm hiu phn cng mch, h iu hnh Linux nhng v phn m m chy trn mch. Vit ng dng iu khin m hnh robot t hnh thit k, ng d ng x l nh - th gic my tnh. Tm gii php thay th mch Micro2440 dng cc h vi x l: o Tm hiu v la ch n vi x l thch hp: AT91SAM9260. o Thit k phn cng mch. o Np h iu hnh Embedded Linux v vit ng dng iu khin m hnh robot. ti ny tp trung vo vic tm hiu v thc hin mch v chng trnh iu khin cho robot, bao gm c thc hin phn cng v phn mm.
MC LC
mc Trang ba Nhim v lun vn Li cm n Tm tt lun vn Mc lc Trang i ii iii iv
CHNG 1: T ng quan v ti .. 1 1.1 t vn ..1 1.2 Cc nh ngha ....... 1 1.2.1 Robot t hnh .. 1 1.2.2 H thng nhng ... 3 1.2.3 H iu hnh nhng . 4 1.3 Nhim v c th v mc tiu ca lun vn ... 5 1.3.1 Nhim v c giao 5 1.3.2 Xc nh nhim v c th .... 5 CHNG 2: S kh i Robot t hnh .... 7 2.1. Phn tch s khi mt robot t hnh 7 2.2. Thit k m hnh robot t hnh 8 CHNG 3: Xy dng m hnh c kh robot .. 9 3.1 S lc v cc phng php di chuyn ca robot t hnh 9 3.2 M hnh robot vi 3 bnh xe Omni ... 10 3.3 Phn tch chuyn ng ca robot ... 11 3.4 Thc hin m hnh c kh robot 13 CHNG 4: Mch cng sut ng c .. 16 4.1 Nhim v v yu cu ca mch cng sut ng c .. 16 4.2 Tip cn l thuyt .. 16 4.2.1 Phng php iu ch rng xung PWM . 16 4.2.2 Mch cu H .. 17 4.2.3 IC cng su t L298 18 4.3 Thc hin mch cng su t ng c ... 19 4.3.1 S nguyn l ... 19 4.3.2 Gii thch ho t ng . 20 4.3.3 Mt s hnh nh th c t m ch cng sut ng c 20
CHNG 5: Mch Micro2440 .. 23 5.1 Tng quan v mch nhng Micro2440 ..... 23 5.2 Kin trc phn cng m ch Micro2440 .. 24 5.2.1 Vi x l S3C2550A . 20 5.2.2 Core board ... 26 5.2.3 SDK board ... 28 5.3 H iu hnh Embedded Linux trn Micro2440 ... 29 5.3.1 H iu hnh Embedded Linux ... 29 5.3.2 H iu hnh Embedded Linux trn Micro2440 . 31 5.3.3 Qu trnh khi ng Embedded Linux trn Micro2440 .. 33 CHNG 6: L p trnh iu khin Robot trn Micro2440 . 35 6.1 Ch n vit chng trnh iu khin .... 35 6.2 Xc nh cc bc tin hnh cc cng c cn thit 35 6.2.1 Xc nh cc bc tin hnh .... 35 6.2.2 Cc cng c cn thit ... 35 6.3 Bin dch Linux Kernel cho Micro2440 ... 37 6.4 Np li Embedded Linux cho Micro2440 . 39 6.5 Bin dch OpenCV cho Micro2440 ... 40 6.6 Ball Tracking . 41 6.6.1 Ball Detect ... 41 6.6.2 Truy xut GPIO driver . 45 6.6.3 To xung PWM 47 6.6.4 Phn lung cu trc chng trnh 47 6.6.5 Bin dch v ch y chng trnh ... 48 CHNG 7: Mch nhng AT91SAM9260-SMISY . 50 7.1 Tng quan v mch nhng AT91SAM9260-SMISY ....50 7.1.1 Mc ch thit k m ch AT91SAM9260-SMISY ... 50 7.1.2 Mch AT91SAM9260-SMISY 50 7.2 La chn vi x l AT91SAM9260 ... 51 7.3 S nguyn l m ch AT91SAM9260-SMISY .. 54 7.3.1 Khi vi x l AT91SAM9260 . 54 7.3.2 SDRAM ... 56 7.3.3 NAND FLASH 56 7.3.4 SPI DATA FLASH .. 57 7.3.5 Cc khi khc .. 57
7.4 Thi cng thc t . 61 CHNG 8: Embedded Linux trn AT91SAM9260-SMISY .64 8.1 Qu trnh boot Linux trn board AT91SAM9260-SMISY ... 64 8.1.1 Qu trnh khi ng c a vi x l AT91SAM9260 .. 64 8.1.2 Qu trnh boot Linux trn board AT91SAM9260-SMISY . 66 8.2 Thc hin port Linux trn board AT91SAM9260-SMISY ... 68 8.2.1 Cc cng c cn thit ... 68 8.2.2 AT91BootStrap 69 8.2.3 U-boot .. 71 8.2.4 Linux Kernel Image . 72 8.2.5 Root File System .. 73 8.2.6 Port Linux ln board AT91SAM9260-SMISY 73 8.2.7 Thit lp tham s khi ng Linux trn AT91SAM9260-SMISY .. 74 8.3 Chng trnh ng dng iu khin Robot ..... 75 CHNG 9: Cc kt qu t c - h n ch - hng pht trin ti 76 9.1 Cc kt qu t c v h n ch ....... 76 9.2 Hng khc ph c cc h n ch v pht trin ti 79 CHNG 10: Ti liu tham kho .... 80
Lun n t t nghip
CHNG 1
Tng quan v ti
1.1 t vn :
Cng vi cng cuc cng nghip ha hin i ha t nc, lnh vc t ng ha c nhng bc tin vt bc v tr thnh yu t quan trng khng th thiu c a nn cng nghip hin i. Khi ni n t ng ha l ni n s thay th d n dn n hon ton cc hot ng chn tay bng my mc, trong Robot t hnh l mt phn quan trng khng th thiu. Ngy nay Robot t hnh ngy cng c hon thin v chng t vai tr ca mnh trong ng dng cng nghip v sinh ho t i sng. Phn quan trng nht quyt nh m i ho t ng ca robot chnh l h thng iu khin. Cho robot t hnh, h thng iu khin phi c kh nng t ho t ng c lp m khng cn kt n i vi my tnh hay mch iu khin no khc. H thng iu khin chnh l mt H thng nhng. H thng nhng bao gm c ph n cng v ph n m m, vi xu hng hin nay, phn cng mch iu khin ngy cng pht trin ph c tp, vic vit phn m m truy xut cc thit b ph n cng ngy cng phc tp hn. d dng pht trin phn mm ng dng, ta cn H iu hnh, h iu hnh qu n l cc thit b phn cng v cho php ta pht trin ph n mm d dng hn. H iu hnh ch y trong m t h thng nhng g i l mt H iu hnh nhng. ti ny tm hiu v xy d ng m hnh robot t hnh nh mt h thng hon ch nh, vi h thng iu khin chnh l m t h thng nhng bao gm c v mch in phn cng, h iu hnh nhng, v phn m m iu khin robot t hnh. Mc d ho t ng ca cc robot th c t bao gm rt nhiu thao tc, ti ny ch gii hn ho t ng di chuyn c a robot t hnh, v ph n mm ng dng tp trung vo hin th c gii php iu khin dn ng cho robot.
Lun n t t nghip
Trong lun n t t nghip ny, gii php iu khin dn ng cho robot t hnh s c gii quyt mc khng qu ph c tp.
a)
b)
c)
d)
f) Hnh 1.1 Mt s hnh nh v robot t hnh. a) Robot Spirit ca NASA thm him sao H a b) Robot AQUA hot ng di nc c) Robot SRR v FIDO ca NASA - d) Spiderbot di chuyn bng chn trn sao Ha e) Robot nghin cu vng cc Bc f) iRobot Roomba ht bi SV: PHM MINH TU N H BCH KHOA TP.HCM 2
e)
Lun n t t nghip
Lun n t t nghip
Kh nng ty bin ph n cng p ng y cc tnh nng cn thit. Gim kch thc c v phn cng v ph n mm, gim tiu tn nng lng. Gim chi ph v c th ti u v n gin ha cc phn khng cn thit. Lm vic n nh v bn b.
Trong iu khin robot, chng trnh iu khin phi lm nhiu tc v cng lc (Multi task), nu khng c h iu hnh, ta phi t phn cng sp xp cc tc v ln lt c x l an xen m khng xung t nhau v phn cng, b nh Ngoi ra, vi nhng ng dng phc tp, cn phn cng cng vic cho nhm nhiu ngi, cn SV: PHM MINH TU N H BCH KHOA TP.HCM 4
Lun n t t nghip
k tha cc kt qu t trc, khng c h iu hnh cung cp m t mi trng chung pht trin ng d ng, ta rt kh t c cc iu ny. Tm li, s dng m t h iu hnh trong iu khin robot t hnh c nhng u im chnh sau: Kh nng qun l a nhim c a h iu hnh cho php ta lp trnh truy xu t cng lc nhiu thit b phn cng, x l nhiu tc v Nh h iu hnh cung cp mi trng chung pht trin ng dng, ta k tha c cc th vin trong lp trnh, tham kh o v ti s dng m ngun. Ngoi ra ta d dng chia nh chng trnh v phn cng cng vic; d dng bo tr v pht trin h thng phn m m ng dng.
Lun n t t nghip
o Lm quen vi lp trnh nhng, p dng vo lp trnh iu khin Robot v cc thit b iu khin t ng hin i.
Lun n t t nghip
CHNG 2
Cc c cu chp hnh
Ngun cung cp Kt cu c kh Hnh 2.1 S khi robot t hnh. Cm bin (Sensor): thu nhn cc tn hiu t mi trng ho t ng v bin i thnh tn hiu in. C nhiu loi cm bin thu nhn nhiu lo i tn hiu ngoi nh: nh sng, nhit , m, lc, khong cch, vn tc, gia t c, gc nghing, hnh nh Cc robot t hnh hin i c trang b rt nhiu cm bin hin i cho php robot thch nghi t t vi mi trng v hot ng chnh xc hn. Mch cm bin c nhim v tin x l cc tn hiu in t cm bin a n, nh khuch i, bin i sang tn hiu s v a sang kh i x l trung tm. Cm bin v mch cm bin c th c tch hp trong m t khi. Khi x l trung tm (CPU) l cc mch vi iu khin, vi x l, hay my tnh, vi chng trnh iu khin. CPU phn tch cc tn hiu thu c, x l v a ra quyt nh iu khin cc hot ng cho robot. Cc tn hiu iu khin t CPU thng khng cng sut iu khin trc tip cc c cu chp hnh, v vy cn c khi cng su t lm nhim v nh n tn hiu iu khin t CPU v cung cp cng sut iu khin c cu chp hnh hot ng theo ng tn hiu iu khin . C cu ch p hnh thng l cc ng c, cc van kh nn hay th y lc s truyn ng cho cc kt cu c kh vn ng robot. Robot t hnh hot ng c lp, nn cn mang theo ngun nng lng cho mnh, thng l acquy hay pin nng lng mt tri. Tt c cc khi trn c t trn mt khung sn c kh. Kt cu c kh cng lm lp v bo v cc khi bn trong. ng thi, kt cu c kh cng bao gm cc chi tit vn ng cho robot (bnh, xch, chn di chuyn; cnh tay thao tc)
Lun n t t nghip
Cc ng c DC
Acquy Kt cu c kh Hnh 2.2 M hnh Robot t hnh. Cm bin ch gm 1 camera (USB webcam), thu nhn hnh nh v a n CPU board qua cng USB. CPU board s dng mch Micro2440, l mt my tnh nhng vi h iu hnh Linux. Trn , ta vit chng trnh x l nh dng th vin OpenCV, v xut tn hiu iu khin (PWM) n driver board. Driver board l kh i cng sut cho ng c. S dng mch cu H iu khin quay, o chiu v iu khin vn tc cho ng c DC dng phng php iu ch rng xung PWM. Cc ng c DC s dng lo i cng sut nh, pht ng cho robot di chuyn. Dng ng c DC 12V - 10W. Ngun in: dng acquy 12V 1.3AH. Kt cu c kh nh gn vi khung sn b ng nhm.
Lun n t t nghip
CHNG 3
b) Hnh 3.1 Robot di chuyn bng chn. a) Robot Asimo hnh ngi - b) Robot 6 chn m phng chuyn ng ca nhn Lp cn li (di chuyn b ng bnh) t ra thc t hn, chng c th lm vic tt trn hu h t cc a hnh do con ngi to ra. iu khin robot di chuyn bng bnh cng n gin hn nhiu, gn nh lun m bo tnh n nh cho robot. Lp ny c th chia lm 3 loi robot: Lo i chuyn ng bng bnh xe (ph bin), loi chuyn ng bng vng xch (khi cn m men pht ng ln hay khi cn di chuyn trn vng m ly, ct v bng tuyt, vng a hnh li lm ph c tp), v loi hn hp bnh xe v xch (t gp).
a)
a)
b) Hnh 3.2 Robot di chuyn bng bnh. a) di chuyn bng bnh xe - b) di chuyn b ng bnh xch 9
Lun n t t nghip
ti ny thc hin m hnh robot t hnh nh di chuyn trn mt ph ng, v vy, chn gii php di chuyn bng bnh xe s n gin cho thit k v thi cng. Tuy nhin, dng bnh xe thng thng s khng th di chuyn linh hot trong phm vi hp, v khng th xoay chuyn hng ti ch, khng th di chuyn theo phng ngang so vi hng trc robot. Qua tm hiu, ta la chn gii php th c hin m hnh robot t hnh di chuyn trn 3 bnh xe Omni (Omni-directional Wheel).
Hnh 3.3 Bnh xe omni. M hnh robot vi 3 bnh xe omni: Robot t hnh vi bnh xe omni c u im hn hn so vi robot s dng bnh xe thng thng. Nh kh nng di chuyn c trn c 2 phng vung gc ca bnh xe omni, robot c th di chuyn linh hot theo nhiu hng, quay ti ch, v a di chuyn va quay d dng di chuyn nhng ni cht hp. 3 bnh xe omni c b tr trn tr c lch nhau gc 120o, mi bnh xe c dn ng b ng mt ng c c lp. Bng vic iu khin vn tc v chiu quay c lp cho 3 bnh xe, ta c th iu khin robot quay v di chuyn theo b t c phng no trong m t phng. -
Hnh 3.4 Robot vi 3 bnh omni. V sao s dng 3 bnh? V 3 bnh l t i thiu robot thng bng trn mt phng m t cch d dng. 3 bnh, vi 3 im tip xc cng xc nh m t mt ph ng, vic thi cng c kh vi 3 bnh xe s d dng hn so vi nhiu bnh xe. SV: PHM MINH TU N H BCH KHOA TP.HCM 10
Lun n t t nghip
a)
b) c) d) Hnh 3.5 S di chuyn ca robot. a) i thng b) xoay ti ch - c) i cho d) i theo cung trn
o o o o
Hnh trn m t 4 trng h p di chuyn ca robot, trong : Vector vn tc ln ca bnh xe omni: mu xanh l. Vector vn tc di chuyn c a robot (tng hp ca 3 vector xanh l): mu trng. Vector vn tc trt ngang (ln trn bnh v tinh) c a bnh xe omni: mu vng. Vector vn t c di chuyn c a bnh xe omni (tng hp ca chuyn ng quay v trt ngang): mu xanh dng.
3.3
Mi chuyn ng c a robot trn mt ph ng u c th phn tch thnh chuyn ng tnh tin v chuyn ng quay. Quy c: tr c 0 o trng vi tr c Xr; chiu dng ngc chiu kim ng h (xem hnh 3.6). Nh vy 3 bnh xe A, B, C ln lt cc gc 150o, 30o, v 270o. Chuyn ng tnh tin: G i - Ft l vector vn t c tnh tin ca robot. - FtA ; FtB ; FtC ln lt l vector vn tc c a 3 bnh xe A, B, C gy ra chuyn ng di ca robot.
11
Lun n t t nghip
Hnh 3.6 Chuyn ng tnh tin. t vn tc Ft mong mun, ta cn tm FtA ; FtB ; FtC .
FtA ; FtB ; FtC chnh l hnh chiu ca Ft trn phng ln (phng vung gc vi
trc trong m t phng chuyn ng) ca bnh xe omni (xem hnh 2.3-4). FtA Ft .cos(150o );
FtB Ft .cos(30 o ); FtC Ft .cos(270o );
Chuyn ng quay:
Hnh 3.7 Chuyn ng quay. SV: PHM MINH TU N H BCH KHOA TP.HCM
12
Lun n t t nghip
t vn tc quay Fq mong mun, ta t FqA = FqB = FqC = Fq/3 ln 3 ng c. - Tng hp chuyn ng: Chuyn ng ca robot l s tng hp ca Ft v Fq. t chuyn ng ny, ta tnh FtA, FtB, FtC, FqA, FqB, FqC nh trn. Sau , vn tc cn t ln 3 ng c A, B, C: FA = FtA + FqA; FB = FtB + FqB; FC = FtC + FqC;
3.4
Kt cu c kh ca m hnh robot c thit k v thi cng da trn c tnh s b ch u c trng lng ca robot (khong 1Kg), mang ti nh (ti a 1Kg). Khng i su vo tnh ton chi tit v c kh. Khung sn robot bng nhm, hnh lc gic, kch thc mi cnh 17.5cm. Trn ta chun b mt khoang t acquy 12V-1.3AH.
Hnh 3.8 Khung sn robot. 3 ng c s dng l ng c DC 12V, cng sut 10W. C b gim tc.
Hnh 3.9 ng c. 3 bnh xe omni ng knh 4cm, 4 bnh v tinh trn chu vi.
Hnh 3.10 Bnh xe omni. SV: PHM MINH TU N H BCH KHOA TP.HCM 13
Lun n t t nghip
Hnh 3.11 Kt cu c kh robot. Cc hnh trn l cc hnh thit k s b trn phn mm thit k c kh Solidworks 2009. Sau y l mt s hnh nh th c t kt cu c kh m h nh robot t hnh thi cng:
Lun n t t nghip
b)
c) Hnh 3.12 Hnh nh thc t kt cu c kh m hnh robot t hnh a) Nhn t pha trn b) Nhn t mt di c) Nhn nghing SV: PHM MINH TU N H BCH KHOA TP.HCM 15
Lun n t t nghip
CHNG 4
Hnh 4.1 Mch PWM. SV: PHM MINH TU N H BCH KHOA TP.HCM 16
Lun n t t nghip
Kha S c ng ngt theo chu k khng i, bng cch thay i thi gian ng (Ton) v ngt ca kha S trong chu k (T), ta thay i c in p trung bnh trn ti. Khong thay i t 0 n U.
Ton T
Nh vy ta thay i c in p trung bnh cp cho ng c, vic ny lm thay i vn tc ng c. Xung PWM c to rt d dng bng cc m ch vi iu khin. Th c t ngi ta thng iu ch xung vi tn s 5KHz n 20KHz. Kha ng ngt S trong th c t thng s dng Mosfet ho c IGBT.
4.2.2 Mch cu H:
Mch cu H c s dng rng ri iu khin o chiu ng c. Xt mch:
Hnh 4.3 Mch cu H. Gi s khi c dng in ch y theo chiu + - th ng c quay thun, chiu ngc li s lm ng c quay nghch. - Cho kha S1 v S4 ng, kha S2 v S3 h mch, khi dng in qua ng c c chiu: S1 M S4, ng c quay thun. - Mun o chiu quay ca ng c, ta ngt S1 v S4, ng S2 v S3, khi dng in qua S3 M S2, ng c s quay theo chiu ngc li. Trong ti ny, kt h p m ch cu H v phng php PWM, ta s iu khin vn t c v chiu quay ca ng c nh sau: - Quay thun: ngt kha S2 v S3, ng kha S4 v cp xung PWM cho S1. - Quay ngc: ngt kha S1 v S4, ng kha S2 v cp xung PWM cho S3. SV: PHM MINH TU N H BCH KHOA TP.HCM 17
Lun n t t nghip
Hnh 4.4 IC cng su t L298, Cc thng s k thu t ng ch : o in p hot ng ln n 46V. o C 2 mch cu H hot ng c lp, vi dng ti a 2A cho mi cu. o Ng vo tng thch mc in p logic TTL. S nguyn l:
Hnh 4.5 Nguyn l IC L298. T s nguyn l, d thy m i ng ra (OUT1, OUT2, OUT3, OUT4) c iu khin bi 1 ng vo (IN1, IN2, IN3, IN4) c lp. Khi ng vo mc logic thp, ng ra tng ng s c ko xung GND qua RS mc chn SENSE. Khi ng vo mc logic cao, ng ra tng ng s c ko ln +VS. EnA v EnB cho php ho c cm 2 cu A v B. SENSE A v SENSE B mc vi in tr Sunt RSA v RSB ly in p hi tip v mch iu khin n u cn thit. Khi khng cn ly in p hi tip, c th b RSA v RSB, m c trc tip SENSE A v SENSE B xung GND. VS l ngun cng sut cho ng c. VSS l ngun +5VDC cung cp cho khi logic ca L298. SV: PHM MINH TU N H BCH KHOA TP.HCM 18
Lun n t t nghip
4.3.1 S nguyn l:
Hnh 4.6 S nguyn l mch cng su t. SV: PHM MINH TU N H BCH KHOA TP.HCM 19
Lun n t t nghip
20
Lun n t t nghip
21
Lun n t t nghip
Hnh 4.7 Hnh nh th c t mch cng su t ng c. SV: PHM MINH TU N H BCH KHOA TP.HCM 22
Lun n t t nghip
CHNG 5
Mch Micro2440
5.1 Tng quan v mch Micro2440:
Board Micro2440 l mt sn ph m c a mt nhm nghin cu v h thng nhng h iu hnh nhng my tnh nhng trn kin trc vi x l li ARM, tn nhm nghin cu l FriendlyARM. Website http://www.friendlyarm.net trnh by v cc sn phm v d n nghin cu ca FriendlyARM. Board FriendlyARM Micro2440 d a trn nn tng ARM9, s dng microprocessor S3C2440 ca Samsung c th chy vi xung clock ti a 533 MHz. Board c sn xut hng n ngi dng pht trin ng dng nhng, iu khin thit b cng nghip, pht trin cc thit b PDA, GPS receiver. Board FriendlyARM Micro2440 l m t my tnh nhng, xut xng h iu hnh Linux ci t sn v c th lm vic ngay m khng cn bc cu hnh no. Vi Micro2440, mt ngi dng vi kin thc lp trnh ng dng trn my tnh c th ngay lp tc lm vic v pht trin phn mm ng dng trn board, khng i hi kin thc v ph n cng v in t . Cho ngi dng lm cng vic nghin cu v pht trin, board Micro2440 c th c n p h iu hnh Linux, Windows CE, Android, v c th ty bin v ph n mm hon ton theo yu cu cng vic c th. Board Micro2440 m ngun m c v phn cng v phn mm. Cho mc ch hc tp v nghin cu, ta hon ton c th tham kho cc thit k ph n cng, cc quy trnh np (porting) m t h iu hnh ln m t mch nhng, thc hnh lp trnh nhng. Board Micro2440 bao gm 2 khi chnh: core board v SDK board. Core board cha CPU, cc b nh, cc thit b cn thit ti thiu chy CPU v memory, v cc port chn cm cm vo SDK board. SDK board c cc module giao tip ngoi vi.
Hnh 5.1 Mch nhng FriendlyARM Micro2440. SV: PHM MINH TU N H BCH KHOA TP.HCM 23
Lun n t t nghip
Cu hnh c bn ca my tnh nhng Micro2440: CPU tc ti a 533MHz. 64MB SDRAM. 256MB b nh FLASH. LCD 3.5inch ho c 7inch vi resistor touch screen. Real-time clock vi pin backup. COM port. USB host 1.1. 1 10/100 Ethernet RJ-45. Cng giao tip vi Camera Module CAM130 c a FriendlyARM. Audio output 3.5 stereo jack v Microphone. PWM buzzer. Nt nh n, Led, GPIO.
24
Lun n t t nghip
Hnh 5.3 Cc kh i chc nng c a S3C2440A Cc c tnh k thut chnh trch t datasheet:
25
Lun n t t nghip
Hnh 5.5 Core board. Core board l m t mch vi cc phn cng ti thiu cho mt h thng my tnh. N bao gm: Vi x l S3C2440; mch cp ngun (u vo 5V); m ch Reset; cng Jtag; cc Led debug; cc b nh: NAND FLASH, NOR FLASH, SDRAM; cc linh kin nh t in, in tr, thch anh cn thit cho vi x l v cc IC nh; 1 Jumper chn ch kh i ng t NAND FLASH hay NOR FLASH; v 3 port chn cm PA, PB, PC. Core board c th xem nh kh i System(CPU v memory) cho board Micro2440. Chi tit phn cng core board: CPU: Samsung S3C2440A, tc 400MHz, max 533MHz. SDRAM: Dung lng 64MB. Data bus 32bit. Bus clock ti a 100MHz. Flash memory: 256MB NAND FLASH. 2M NOR FLASH. Cc cng v thit b tng tc: 1port PA 56 chn pitch 2.0mm cho GPIO. 1port PB 50 chn pitch 2.0mm cho LCD v CMOS CAMERA. SV: PHM MINH TU N H BCH KHOA TP.HCM 27
Lun n t t nghip
1port PC 56 chn pitch 2.0mm cho System bus. Mch Reset on-board. Port Jtag 10 chn pitch 2.0mm. LED. Clock h thng: Thch anh 12MHz. Real-time clock: On-chip Real-time clock, khng bao gm pin back-up. Thch anh Real-time 32.768KHz. Ngun: 5VDC. Kch thc: 63 x 52 mm.
Hnh 5.6 SDK board. SV: PHM MINH TU N H BCH KHOA TP.HCM 28
Lun n t t nghip
Micro2440SDK bao gm: 1 RJ-45 network interface 100M, s dng Chip LAN DM9000. cng giao tip ni tip, gm 3 ng ra TTL v 3 ng ra RS232. USB Host (USB 1.1), s dng USB HUB Chip. 1 USB device (USB 1.1). Audio output 3.5mm stereo jack v 1 microphone. 1 PWM buzzer. 1 bin tr W1 cho b ADC on-chip. nt nhn. 1 khe cm SD card. LCD connector: 1 cho LCD 3.5inch v 1 cho LCD 7inch. touch screen connector. 1 CMOS camera connector (CON4) kt n i vi Camera module CAM130 c a FriendlyARM. Pin backup RTC 1 port System Bus. Ng vo cp ngu n 5V. Vi vic tch ring ph n h thng (Core board) v ph n giao tip ngo i vi (SDK), nh sn xut d tnh ta c th thit k v thi cng li 1 mch nhng s dng li khi Core board nhng vi cc ngoi vi v cc kh i chc nng khc thch hp hn vi ng dng c th ca minh. Core board bao gm CPU v cc memory (Flash, SDRAM) vi tn s hot ng v tn s trn data bus cao, ngoi ra S3C2440 c kiu v 289-FBGA, 2 l do ny khin vic thit k v thi cng kh i CPU v memory tr nn phc tp. Chc chn cn cng ngh mch in nhiu hn 2 lp. SDK ch g m cc port IO, cc IC giao tip nn vic thit k v thi cng n gin hn nhiu, hon ton c th s dng m ch in 2 lp. V vy, cho 1 ng dng c th cn n khi h thng tng t nh Core board c a Micro2440, ta hon ton c th dng li Core board v thit k li SDK thch h p.
5.3 H iu hnh Embedded Linux trn Micro2440: 5.3.1 H iu hnh Embedded Linux:
Mt h iu hnh bao gm 2 ph n chnh: phn nhn hay li ca h iu hnh (Kernel) v ph n h thng cc tp tin v cc ng dng (File System). Embedded Linux l mt h iu hnh hon chnh. Cm t embedded thng c cp trong kernel nhng th c cht khng c mt phin bn Linux kernel no dnh ring cho h thng nhng. Linux kernel source code c s dng chung compile cho mi thit b, t cc thit b nhng, n my PC v c cc server ln, i vi mi platform s c nhng option hiu ch nh ph hp v c bit dnh cho platform . SV: PHM MINH TU N H BCH KHOA TP.HCM 29
Lun n t t nghip
Cc thnh phn cu to nn h thng Embedded Linux bao gm boot loader, Linux kernel, v File System. Tt c cc thnh ph n ny u c th tm thy phin bn open source v chng ta c th t mnh chnh sa, thay i cho ph hp vi thit b c a mnh. Embedded Linux khng th chy trn cc processor c kin trc nh hn 32 -bit. Trong thi gian gn y, cng ngh system-on-chip (SOC) pht trin mnh, dn n vic h gi thnh sn xut cc microprocessor, ng th i b nh RAM v flash cng r v c dung lng ln hn to nn thun li cho vic chuyn sang pht trin h thng nhng c s dng Embedded Linux. Cc h thng nhng ngy nay bn cnh cc chc nng cn thit cn c th h tr thm cc chc nng ph (web server, firewall, nghe nhc...) thng qua h thng Embedded Linux. Vic s dng Embedded Linux cho h thng nhng cn gip gim thi gian thit k v pht trin, do b n thn Linux kernel c thit k theo module. Chng ta c th d dng tm c nhiu module c sn v hiu qu nh TCP/IP stack, X-server cho ng dng GUI, hoc c th tm thy driver cho thit b nhng ca mnh c vit sn trong kernel. Mt im m nh khc ca Embedded Linux l open source, iu ny cho php ngi thit k can thip su hn vo cc dch v v module m h iu hnh cung cp. Ngi thit k c th hiu r hn v nhng hm m h gi v thm ch c th thay i, ti u cc hm ny cho thit b mnh s dng. Ngi thit k cn c th da vo cc module driver c sn tham kho cho cc driver m h sp vit. Tnh open source cn gip code h tr bi kernel c tnh tin cy cao, trc khi c a vo kernel source tree, code ny c test rt nhiu trong cng ng v thm ch nu c li xy ra cng s c patch thay th trong thi gian ngn. Tnh sn sng c a Embedded Linux l rt cao. t c h iu hnh no h tr c nhiu platform v device driver nh Linux. Ngoi h tr phn cng Linux cn h tr cc giao thc tiu chun (wifi, bluetooth, ...). Tt c nhng iu trn cho chng ta th y tnh nng hiu qu ca h thng Embedded Linux v cng nhng im mnh lm cho xu hng pht trin Embedded Linux ngy cng tr nn quan trng, cng nhiu cng ty u t vo lnh vc ny v cng nhiu ngi yu thch Embedded Linux hn.
Lun n t t nghip
Qtopia Test Utilities (developed by FriendlyARM, not open source) SV: PHM MINH TU N H BCH KHOA TP.HCM
31
Lun n t t nghip
A/D conversion test tool LED test tool User button test tool I2C-EEPROM read/write test tool LCD test tool Ping test tool USB camera live preview and picture taking Audio recorder Web browser Watchdog test tool Network configuration tool Backlight control tool Language setting tool (English and Chinese) Handwriting tool (for touch pen testing) MMC/SD card and flash drive auto mounting and unmounting
Hnh 5.10 Giao din Qtopia 2.2 trn Micro2440. Ta hon ton c th t bin d ch 1 phin b n Embedded Linux t Open source code Linux Kernel, vi cc thit lp v driver ty ; hay s d ng h thng File System khc; hay giao din ha khc Qtopia 2.2 m c nh. Th m ch ci li h iu hnh khc nh Windows CE hay Android trn Micro2440. SV: PHM MINH TU N H BCH KHOA TP.HCM 32
Lun n t t nghip
Lun n t t nghip
c a SuperVivi trn mn hnh my PC. Ti y, Vivi cung cp cho ta mt s chc nng cu hnh h thng nh: xa, format b nh FLASH, load v lu tr Kernel Image, System backup and Restore Micro2440 c nh sn xut n p sn SuperVivi trong c NAND FLASH v NOR FLASH. Tuy nhin, NOR FLASH dng cho mc ch s a cha, restore h thng khi c li, hay ci li h iu hnh m i NAND FLASH c SuperVivi vi nhng tham s bin mi trng t ng tip tc qu trnh boot bng cch load Linux Kernel sau chuyn thc thi cho Linux Kernel. Mc nh Linux Kernel v Root File System u c cha trn NAND FLASH c a Micro2440. Linux Kernel cng c load vo v ch y trn SDRAM.
34
Lun n t t nghip
CHNG 6
35
Lun n t t nghip
Cc bc ci t arm-linux-gcc-4.3.2 ln my PC Linux Ubuntu: trong ca s Termial c a my PC Linux: To th m c: # mkdir /user/local/arm # mkdir /user/local/arm/4.3.2 Gii nn gi arm-linux-gcc-4.3.2.tar.gz vo th mc v a to: # tar xvzf arm-linux-gcc-4.3.2.tar.gz C/ Thit lp bin mi trng: # export PATH=$PATH:/user/local/arm/4.3.2/bin Sau ta c th compile cc chng trnh vit bng C hay C++ ch y trn Micro2440. V d ta compile file main.c trong th m c /hello_dir thnh file hello dng arm-linux-gcc: # cd /hello_dir /hello_dir# arm-linux-gcc o hello main.c b) Minicom: Minicom l phn m m giao tip vi cng n i tip (cng COM) ch y trn h iu hnh Linux. Ta cn s dng Minicom lm console trn my PC Linux, giao tip vi SuperVivi trn Micro2440 trong qu trnh n p (port) li h iu hnh Embedded Linux cho board Micro2440 (qu trnh port Linux ln board). Download v ci t gi ph n mm Minicom: # sudo get-install minicom Ci t xong, thit lp cho Minicom: # minicom s Ca s configuration ca Minicom hin ln, chn Serial port Setup
Hnh 6.1 Serial port setup Minicom. SV: PHM MINH TU N H BCH KHOA TP.HCM 36
Hnh 6.2 Thit lp thng s cho Minicom. Ch chn Serial Device l /dev/ttyS0 cho COM0 ca PC, /dev/ttyS1 cho COM1 Chn /dev/ttyUSB0 nu dng thit b USB-to-COM. Sau chn Exit, Minicom s to kt ni vi cng COM v ta c th bt u lm vic.
c) USB push: USB push l mt chng trnh chy trn my PC Linux, giao tip vi m ch Micro2440 qua cng USB th c hin gi v nh n file gia my PC v Micro2440. Download v xem cch s dng USB push trn website: http://www.friendlyarm.net/downloads.
Lun n t t nghip
Trong source code Linux-2.6.32.2 download, nh sn xut FriendlyARM to sn cc file config cu hnh cho Kernel ph hp vi phn cng Micro2440. C th c 5 file cu hnh tng ng cho 5 lo i LCD s dng vi Micro2440: config_mini2440_t35 - cho TPO 3.5inch LCD config_mini2440_l80 - cho Sharp 8inch LCD config_mini2440_n35 - cho NEC 3.5inch LCD config_mini2440_a70 cho Innolux 7inch LCD config_mini2440_vga1024x768 cho mn hnh VGA ( phn gii 1024x768) s dng, ta i tn file cu hnh tng ng vi loi mn hnh ang s dng trn board Micro2440 thnh .config. V d s dng mn hnh LCD NEC 3.5inch: /Linux-2.6.32.2# cp config_mini2440_n35 .config Thit lp Cross-compiler nh mc 6.2.2, v bt u config Kernel: /Linux-2.6.32.2# make menuconfig Mn hnh giao din cu hnh Kernel xut hin:
Hnh 6.3 Cu hnh cho Linux Kernel. S dng cc phm mi tn di chuyn chn cho php ho c khng cho php, la chn cc option tng thch vi phn cng. Chi tit v cc option ca Linux Kernel c th tm thy trong ti liu Micro2440 User manual c a FriendlyARM ho c trn website pht trin Linux Kernel: http://www.kernel.org Nh ni, FriendlyARM cu hnh cc tham s cn thit ph hp vi m ch Micro2440, ta ch cn cho php thm la chn GPIO sysfs trong phn Device Driver --->. Exit, ta to c file .config c cc tham s cu hnh cho Linux Kernel ph hp vi Micro2440 v tch hp GPIO driver. SV: PHM MINH TU N H BCH KHOA TP.HCM 38
Lun n t t nghip
Build Linux Kernel Image: /Linux-2.6.32.2# make zImage Nu qu trnh bin dch thnh cng, file zImage s c to ra trong th m c Linux-2.6.32.2/arch/arm/boot. l file nh ca Linux Kernel.
Hnh 6.4 SuperVivi console. SV: PHM MINH TU N H BCH KHOA TP.HCM 39
Lun n t t nghip
Ta format NAND FLASH bng lnh f. Tip theo, dng lnh v, SuperVivi s ch nhn file Vivi bootloader t my PC. Ta kt n i cng USB device trn Micro2440 vi cng USB my PC, v dng chng trnh USB push gi file Vivi bootloader download xung Micro2440. SuperVivi ang chy trn Micro2440 s nhn file Vivi bootloader ny v chp vo NAND FLASH. Tng t, dng lnh k v tool USB push download zImage vo NAND FLASH c a board Micro2400. Tip tc dng lnh y v tool USB push download Root File System vo NAND FLASH ca Micro2440. Ngt kt ni COM v USB gia Micro2440 v my PC, gt switch chn ch boot trn Micro2440-SDK sang NAND FLASH v kh i ng li board. Micro2440 s boot vo NAND FLASH v khi ng Embedded Linux mi n p. Nu Embedded Linux va np khi ng tt trn Micro2440, v trong th m c /sys/class/ c a Root File System trn Micro2440 xut hin th mc GPIO l ta thnh cng trong vic ci t li Embedded Linux trn board Micro2440 c driver cho GPIO.
Lun n t t nghip
Hnh 6.5 Hnh g c thu t USB webcam. 2. Chuyn sang h mu HSV H mu HSV cho php p dng cc thut ton lc mu tt hn h mu RGB. Chuyn hnh nh thu c t h mu RGB sang h mu HSV: cvCvtColor(frame, HSV_frame, CV_BGR2HSV); SV: PHM MINH TU N H BCH KHOA TP.HCM 41
Lun n t t nghip
Hnh 6.6 Hnh nh trong h mu HSV. 3. Lc mu dng hm cvInRangeS Hm cvInRangeS l c v to ra 1 nh trng en nh phn, ch gm 2 mu: trng (1) v en (0). Nhng im khng thuc vng mu c ch nh s chuyn thnh en, im n m trong gii h n vng mu ch nh s chuyn sang mu trng.
Lun n t t nghip
Hnh 6.8 cvDilate gim nhiu. 5. Tip tc gim nhiu bng hm cvErode
Hnh 6.9 cvErode gim nhiu. SV: PHM MINH TU N H BCH KHOA TP.HCM 43
Lun n t t nghip
Hnh 6.10 cvFindContours pht hin ng bin. 7. V hnh elip xp x ng bin, dng hm cvFitEllipse2
Hnh 6.11 cvFitEllipse2 to elip xp x vi ng bin. SV: PHM MINH TU N H BCH KHOA TP.HCM 44
Lun n t t nghip
8. Xc nh ng trn. Trong cc hnh elip to ra, so snh ng knh trc ln v trc nh ca elip, nu gn b ng nhau th l ng trn tng ng vi qu bng mc tiu. Cn c vo lch ca tm ng elip so vi trc i xng dc ca hnh, ta s bit qu bng ang pha tri hay phi ca Robot, t iu khin Robot quay v pha qu bng. Cn c vo bn knh ng trn, ta c chng c kho ng cch gia qu bng v Robot, t iu khin Robot di chuyn ti hay lui.
Lun n t t nghip
high s thit lp output GPIO vi in p ban u m c cao (1). in s thit lp chn GPIO tng ng thnh ng vo input. Sau khi thit lp GPIO thnh ng ra output, ta c th t gi tr ng ra cao hay thp b ng cch ghi gi tr 1 hay 0 vo file value. c ng vo input bng cch c gi tr trong file value Trong chng trnh Ball Tracking, on code sau khi to ouput cho GPIO F.0:
Ta cn 6 chn GPIO, khi to tng t cho GPIO F.1, F.2, F.3, F.4, F.5. Output m c cao cho chn GPIO:
Vi tham s fname gi chui ng dn v tn ca file value tng ng vi chn GPIO mun iu khin. SV: PHM MINH TU N H BCH KHOA TP.HCM 46
Lun n t t nghip
Lun n t t nghip
Th vin pthread l mt th vin chun trong C/C++. N cho php to v qu n l nhiu lung x l trong 1 chng trnh, cho ta hiu qu gn nh nhiu chng trnh cng c chy v x l m t lc. Cu trc chng trnh Ball Tracking:
48
Lun n t t nghip
default: target Trong : /user/local/arm/4.3.2/bin/ l ng dn n Cross-compiler. /Micro2440-OpenCV/ l ng dn n th vin OpenCV bin dch. Bin dch BallTracking: di chuyn vo th mc cha BallTracking.cpp v: # make File BallTracking_app s c to ra trong cng th mc. y l file thc thi ch y trn board Micro2440. Ta chp file ny ln board v cp quyn thc thi cho file: # chmod +x BallTracking_app Kt ni USB webcam vo cng USB host trn Micro2440 v chy ng dng: # ./BallTracking_app
49
Lun n t t nghip
CHNG 7
50
Lun n t t nghip
b) c) Hnh 7.1 Mt s kiu ng gi vi x l. a) BGA package - b) QFP package - c) LCC package Ta chn vi x l AT91SAM9260 ca hng ATMEL vi kiu ng gi 208 chn QFP. AT91SAM9260 l vi x l vi li ARM9 do hng ATMEL sn xu t, c thit k nh b x l cho h thng hon chnh, thch h p cho cc ng dng nh Point-OfSale, Bar code reader, Ethernet-base IP camera
a)
51
Lun n t t nghip o o
Cc thng s chnh: 180 MHz ARM926EJ-S ARM Thumb Processor - 8 KBytes Data Cache, 8 KBytes Instruction Cache, MMU Memories - 32-bit External Bus Interface supporting 4-bank SDRAM/LPSDR, Static Memories, CompactFlash, SLC NAND Flash with ECC - Two 4-kbyte internal SRAM, single-cycle access at system speed - One 32-kbyte internal ROM, embedding bootstrap routine Peripherals - ITU-R BT. 601/656 Image Sensor Interface - USB Device and USB Host with dedicated On-Chip Transceiver - 10/100 Mbps Ethernet MAC Controller - One High Speed Memory Card Host - Two Master/Slave Serial Peripheral Interfaces - Two Three-channel 32-bit Timer/Counters - One Synchronous Serial Controller - One Two-wire Interface - Four USARTs - Two UARTs - 4-channel 10-bit ADC System - 90 MHz six 32-bit layer AHB Bus Matrix - 22 Peripheral DMA Channels - Boot from NAND Flash, SDCard, DataFlash or serial DataFlash - Reset Controller with On-Chip Power-on Reset - Selectable 32,768 Hz Low-Power and 3-20 MHz Main Oscillator - Internal Low-Power 32 kHz RC Oscillator - One PLL for the system and one PLL optimized for USB - Two Programmable External Clock Signals - Advanced Interrupt Controller and Debug Unit - Periodic Interval Timer, Watchdog Timer and Real Time Timer I/O - Three 32-bit Parallel Input/Output Controllers - 96 Programmable I/O Lines Multiplexed with up to Two Peripheral I/Os Package - 217-ball BGA, 0.8 mm pitch - 208-pin QFP, 0.5 mm pitch
52
Hnh 7.3 S khi vi x l AT91SAM9260. SV: PHM MINH TU N H BCH KHOA TP.HCM 53
Lun n t t nghip
54
Lun n t t nghip
Hnh 7.4 Khi vi x l AT91SAM9260 SV: PHM MINH TU N H BCH KHOA TP.HCM 55
Lun n t t nghip
7.3.2 SDRAM:
S dng MT48LC4M16A2, l IC SDRAM ca hng MICRON, vi cc thng s c bn: o Dung lng: 8 MegaByte (1Meg x 16 x 4banks). o Data bus 16bits, 133MHz. o Address bus 12bits. o ng gi: TSOP II - 54 chn.
Hnh 7.5 SDRAM. SDRAM c iu khin giao tip nh khi giao tip vi b nh ngoi (External Bus Interface) ca vi iu khin AT91SAM9260, ta khng qu quan tm n giao thc giao tip SDRAM. Khi SDRAM ny dng lm vng Ram chnh cho h iu hnh v cc ng dng.
56
Lun n t t nghip
Hnh 7.6 NAND Flash. NAND Flash cng c giao tip nh vo khi External Bus Interface c a vi iu khin AT91SAM9260. NAND Flash ng vai tr nh a cng my vi tnh, l b nh cha h thng File (File System) cho h iu hnh hot ng.
Hnh 7.7 SPI Data Flash. AT45DB161D giao tip vi AT91SAM9260 nh kh i giao tip SPI vi chn chip select SPI0_NPCS1 c a AT91SAM9260.
Lun n t t nghip
o Dng LM1117-1V8, t u vo 5VDC, to ngun 1.8V cp cho li x l c a AT91SAM9260. o Ngun pin 3V, qua MCP1700-1802E/MB, l IC n p hiu sut cao, to p 1.8V cho khi Realtime Clock ca AT91SAM9260.
Hnh 7.8 Khi cp ngu n. 7.3.5.2-Khi RS232: Dng IC Max3232 chuyn i mc in p gia kh i giao tip UART ca AT91SAM9260 (3.3V) v mc in p ca chun giao tip RS232 (9V). nh giao tip vi my vi tnh hoc cc thit b khc. Khi UART0 c a AT91SAM9260 cn giao tip vi my vi tnh qua RS232, lm Console chnh cho H iu hnh Linux chy trn m ch.
58
Lun n t t nghip
Hnh 7.9 RS232. 7.3.5.3-Khi giao tip SD card: Giao tip vi th nh SD. Th nh SD c th c dng nh b nh chnh ch a Kernel Linux v File system, hoc cha cc chng trnh ng dng hay cc d liu khc.
Hnh 7.10 SD card. 7.3.5.4-Khi giao tip Ethernet: AT91SAM9260 c module iu khin lp MAC ca giao thc Ethernet, ta cn IC DM9161A c a hng DAVICOM lm nhim v giao tip ethernet lp vt l (Physical layer).
59
Lun n t t nghip
Hnh 7.11 Ethernet. 7.3.5.5-USB port: Cng USB device dng giao tip vi my vi tnh. Cng USB host dng giao tip vi cc thit b USB khc (USB webcam, USB flash disk).
Hnh 7.12 USB port. 7.3.5.6-GPIO: GPIO (General Purpose Input Output) l cc chn vo/ra ng dng chung. Ta c th dng iu khin On/Off cc thit b , c gi tr t cc nt nhn... SV: PHM MINH TU N H BCH KHOA TP.HCM 60
Lun n t t nghip
Hnh 7.14 AT91SAM9260-SMISY mt trn. SV: PHM MINH TU N H BCH KHOA TP.HCM 61
Lun n t t nghip
Chc nng Chn clock khi ng: t b dao ng RC bn trong INTRC/EXTCLK hay t thch anh 32.768KHz ngoi. NTRST_E Cho php ho c cm tn hiu NTRST ca khi Jtag. TCK_RTCK S dng hoc khng s dng tn hiu RTCK ca Jtag. BDS_E Cho php ho c cm ch c nng Jtag debug. BMS_LOW Chn boot t Embedded ROM hay t external memory. SFLASH_WP Cho php ho c cm ghi vo SPI DATA FLASH. NAND_WP Cho php ho c cm ghi vo NAND FLASH. Chn TXD1 (t khi UART1) hay DTXD (t khi TXD1/DTXD UART0 debug) kt ni n RX c a COM port. Chn RXD1 (kh i UART1) hay DRXD (kh i UART0 RXD1/DRXD debug) kt ni n TX ca COM port.
63
Lun n t t nghip
CHNG 8
Hnh 8.1 Qu trnh Rom Boot c a AT91SAM9260. SV: PHM MINH TU N H BCH KHOA TP.HCM 64
Lun n t t nghip
Bc 1: Chng trnh chy vi b dao ng ni, hoc vi b dao ng th ch anh (c chn bi kim tra mc in p trn chn OSCSEL chn 41 c a AT91SAM9260, i vi m ch AT91SAM9260-SMISY th bng cch ni hoc khng ni Jumper J3), th c hin cu hnh main clock cho h thng. Bc 2: Kim tra s tn ti ca chng trnh BootStrap trong SPI dataflash (NPCS0). Nu tn ti, MPU thc hin chp m thc thi BootStrap t SPI dataflash vo SRAM ni ca MPU, sau thc thi lnh nh y n a ch u tin ca SRAM thc thi chng trnh . Nu khng tn ti, MPU thc hin Bc 3 sau y. Bc 3: Kim tra s tn ti ca chng trnh BootStrap trong SPI dataflash (NPCS1) hay khng. Nu tn ti, MPU th c hin chp m thc thi c a BootStrap t SPI dataflash vo SRAM ni ca MPU, sau thc thi lnh nhy n a ch u tin ca SRAM thc thi chng trnh BootStrap. Nu khng tn ti, MCU th c hin Bc 4 sau y. Bc 4: Kim tra s tn ti ca chng trnh BootStrap trong NAND FLASH device hay khng. Nu tn ti, MPU thc hin chp m thc thi ca BootStrap t NAND FLASH vo SRAM n i ca MPU, sau thc thi lnh nhy n a ch u tin ca SRAM thc thi chng trnh BootStrap. Nu khng tn ti, MPU thc hin bc B5 sau y. Bc 5: Nu MPU nhn c k t bt k t bn phm my tnh (qua cng DBGU). Ho c khi cm cable USB vo my tnh chng trnh s nhy sang SAM-BA boot. SAM-BA boot l qu trnh giao tip gia cc MPU dng AT91SAM vi chng trnh SAM-BA trn my tnh thc hin n p chng trnh khi ng cho MPU. Chng trnh BootStrap l on chng trnh nh c lu tr a ch u c a cc thit b nh (SPI DATA FLASH, NAND FLASH), s c chp vo SRAM v thc thi trn SRAM, c nhim v load cc chng trnh ng dng ln hn, v chng trnh ng dng ln khng th c load trc tip vo 4KB SRAM c a AT91SAM9260. Vic kim tra s tn ti ca BootStrap trn cc thit b nh c xc nh bng cch kim tra 32byte u ca cc thit b nh : 8 vector lnh u thit b nh (32 byte u, m i lnh 4 byte), tr vector th 6, l nhng lnh thch hp ca tp lnh ARM
Vector th 6 ( a ch 0x14) cho bit kch thc ca chng trnh s c chp vo SRAM ca AT91SAM9260 thc thi. Kch thc chng trnh phi nh hn 4KB, v AT91SAM9260 c SRAM 4KB. SV: PHM MINH TU N H BCH KHOA TP.HCM 65
Lun n t t nghip
V y vi m ch AT91SAM9260-SMISY, ta c th lu tr BootStrap SPI DATA FLASH (NPCS1) hoc NAND FLASH. Chng trnh BootStrap s c Rom Boot load v ch y trn SRAM. BootStrap s tip tc load cc chng trnh ng dng ln hn. ATMEL cung cp sn source code BootStrap cho dng chip AT91, gi l AT91BootStrap.
Kernel image (1.75MB) U-boot (1MB) 0x1FFFFF Hnh 8.2 Phn vng b nh cho AT91SAM9260-SMISY. SV: PHM MINH TU N H BCH KHOA TP.HCM
0x20780000
0x207FFFFF
66
Hnh 8.3 Qu trnh boot Linux. (1) Rom code: Qu trnh Rom Boot: AT91SAM9260 kh i ng, Rom code s th c thi, kim tra xem AT91BootStrap c tn ti trn Boot Media khng. (Boot media l cc b nh ngoi nh SPI Data Flash, Nand Flash, hay SD card). Nu tm th y, Rom code s load AT91BootStrap (4KB u tin ca Boot Media) vo SRAM ni ca AT91SAM9260 v thc thi n. (2) AT91BootStrap: C nhim v kh i ng SDRAM, b dao ng, v load U-boot t a ch 0x5200 trn SPI Data Flash vo a ch 0x207800000 trn SDRAM, ri th c hin lnh nhy n a ch chuyn thc thi cho U-boot. (3) U-boot: Thc hin load Linux Kernel t a ch 0x3E800 trn SPI Data Flash vo a ch 0x20000000 trn SDRAM, truyn cc bin mi trng v chuyn thc thi cho Kernel. Linux Kernel s cn c vo cc bin mi trng truy xut File System v b t u h iu hnh Linux.
67
Lun n t t nghip
68
Lun n t t nghip
phn cng gn nht vi board AT91SAM9260-SMISY, copy v i tn thnh AT91SAM9260-SMISY: # cd SAM-BA-v2.10/tcl_lib # cp r AT91SAM9260-EK/ AT91SAM9260-SMISY/ i tn file at91sam9260-ek.tcl thnh AT91SAM9260-SMISY.tcl: # cd AT91SAM9260-SMISY # mv at91sam9260-ek.tcl AT91SAM9260-SMISY.tcl Trong file AT91Sam9260-SMISY.tcl, dng 49, sa variable extRamDataBusWidth 32 thnh variable extRamDataBusWidth 16. Tip theo, trong th mc SAM-BA-v2.10/applets/at91lib/boards/ c cc th m c con cha source code tng ng cho 1 board. ta copy v i tn th mc AT91SAM9260-EK thnh AT91SAM9260-SMISY: # cp r AT91SAM9260-EK/ AT91SAM9260-SMISY/ Th mc AT91SAM9260-SMISY, file board.h, dng 513, sa cc thng tin v SDRAM size v data bus width:
Cc tham s ny tm th y trong datasheet ca SDRAM MT48LC4M16A2. Cu hnh xong, vo th mc SAM-BA-v2.10/applets/isp-project/extram, v bin d ch: #cd SAM-BA-v2.10/applets/isp-project/extram #make clean BOARD=AT91SAM9260-SMISY CHIP=at91sam9260 sdram File isp-extram-at91sam9260.bin s c to ra v c chp t ng vo th m c SAM-BA-v2.10/tcl_lib/AT91SAM9260-SMISY. Lc ny SAM-BA sn sng lm vic vi board AT91SAM9260-SMISY.
8.2.2 AT91BootStrap:
AT91BootStrap l boot loader c ATMEL vit dnh cho cc chip dng AT91 c a hng ny. AT91BootStrap c m ngun m, ta s dng phin b n 1.16, download ti http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4093 SV: PHM MINH TU N H BCH KHOA TP.HCM 69
Lun n t t nghip
AT91BootStrap ng vai tr 1st bootloader trong qu trnh boot Linux, c nhim v cu hnh cc kh i chc nng cn thit ca MPU, sau thc thi 2nd bootloader. Chi tit v AT91BootStrap xem ti liu AT91BootStrap ca ATMEL. Trong ti ny, ta s dng source code ca AT91BootStrap vit cho board AT91SAM9260-EK, v board ny c cu hnh ph n cng kh ging vi board AT91SAM9260-SMISY t thit k. C th, trong AT91BootStrap, ta cn cu hnh li cc thng s c a SDRAM, v a ch c a U-boot: Trong th mc source code ca AT91BootStrap, th m c board cha source code xy dng sn cho cc board. Copy AT91SAM9260-EK v i tn thnh AT91SAM9260-SMISY: # cd board # cp r at91sam9260ek/ AT91SAM9260-SMISY/ i tn file: # cd AT91SAM9260-SMISY # mv at91sam9260ek.c at91sam9260-SMISY.c # cd dataflash # mv at91sam9260ek.h at91sam9260-SMISY.h Ta lu tr AT91BootStrap trong SPI DataFlash nn ta ch quan tm n th m c dataflash. Tip theo, ta sa li file Makefile dng 18: BOARD=AT91SAM9260-SMISY File at91sam9260-SMISY.c, dng 114, sa li on code s cu hnh SDRAM 3 thng s AT91C_SDRAMC_NC_8, AT91C_SDRAMC_NR_12, AT91C_SDRAMC_DBW_16_BITS.
Cc thng s ny tm th y trong datasheet ca SDRAM MT48LC4M16A2. SV: PHM MINH TU N H BCH KHOA TP.HCM 70
Lun n t t nghip
Ta s dng SPI DataFlash cha AT91BootStrap. Vo th mc dataflash, file at91sam9260-SMISY.h, dng 70, phn bootstrap setting, sa li cc thng s: IMG_ADDRESS, IMG_SIZE, JUMP_ADDR cho ph hp vi phn vng b nh.
S dng Cross Toolchain, bin dch: # cd board/AT91SAM9260-SMISY/dataflash # make Trong th mc board/AT91SAM9260-SMISY/dataflash s xut hin file dataflash_at91sam9260-SMISY.bin. y l file bootstrap np vo a ch 0x0000 c a SPI DataFlash.
8.2.3 U-boot:
DAS U-boot (Universal Bootloader) l m t bootloader m ngun m, tng thch vi rt nhiu kin trc CPU. U-boot c pht trin u tin bi Wolfgang Denk vo nm 2002. Website chnh ni pht trin U-boot: http://sourceforge.net/projects/uboot/. U-boot vn ang tip tc c pht trin m nh bi cng ng m ngun m , v trung bnh 1 thng c mt phin b n U-boot mi ra i. Chc nng c bn c a U-boot l cu hnh cho mt s khi phn cng trn board v kh i ng h iu hnh m t cch t ng hoc c s can thip ca ngi dng qua dng lnh. Vic can thip bng dng gip ngi dng c th cu hnh b nh , cu hnh mng, hay thit lp cc tham s cho qu trnh kh i ng. Ta s dng phin bn U-boot-1.3.4 download ti ftp://ftp.denx.de/pub/u-boot/uboot-1.3.4.tar.bz2. Qu trnh bin d ch U-boot nh sau: Download v gii nn: # wget ftp://ftp.denx.de/pub/u-boot/u-boot-1.3.4.tar.bz2 # cd u-boot-1.3.4 Ly bn v cho cu hnh AT91: # wget ftp://www.at91.com/pub/uboot/u-boot-1.3.4-exp.5/u-boot-1.3.4-exp.5.diff # cat u-boot-1.3.4-exp.5.diff | patch pl Sa cc tham s trong file u-boot-1.3.4/include/configs/at91sam9260ek.h: Dng 95, s a thng s SDRAM size:
71
Lun n t t nghip
Thit lp Cross-compile nh mc 6.2.2, v bin dch U-boot: # make distclean CROSS_COMPILE=arm-linux# make at91sam9260ek_dataflash_cs1_config # make CROSS_COMPILE=arm-linux Qu trnh bin dch thnh cng s cho ta file thc thi u-boot.bin.
Download cc b n patch:
wget zcat wget zcat http://maxim.org.za/AT91RM9200/2.6/2.6.xx-at91.patch.gz 2.6.27-at91.patch.gz | patch -p1 ftp://www.linux4sam.org/pub/linux/2.6.27-at91-exp.patch.gz linux-2.6.27-at91-exp.diff.gz | patch -p1
Ta c file zImage trong th m c arch/arm/boot. Tuy nhin, u-boot khng h tr file zImage ny, n i hi phi to file uImage t file zImage bng cch thm vo phn header v cc checksum Vic to uImage t zImage c th c hin b ng cng t mkimage. mkimage l cng c i km vi u-boot, c source code n m trong th mc source code ca u-boot, v c bin d ch cng lc khi ta bin d ch u-boot, file th c thi mkimage c to ra nm trong th mc tools ca th mc u-boot source code. Ta chp file th c thi mkimage vo th mc linux-2.6.27, v to uImage:
mkimage -A arm -O linux -C none -T kernel -a 20008000 -e 20008000 -n linux2.6 -d arch/arm/boot/zImage uImage
File uImage c to ra trong th mc arch/arm/boot cng vi file zImage. y l file Linux Kernel Image cn thit.
72
Lun n t t nghip
Hnh 8.4 SAM-BA-v2.10 kt ni vi AT91SAM9260-SMISY. SAM-BA s kt n i vi board AT91SAM9260-SMISY, v thit lp SDRAM sn sng lm vic. Ca s giao din lm vic ca SAM-BA:
Hnh 8.5 Giao din SAM-BA. SV: PHM MINH TU N H BCH KHOA TP.HCM 73
Lun n t t nghip
Np AT91BootStrap: Trn ca s giao din ca SAM-BA, chn th DataFlash AT45DB/DCB lm vic vi SPI DATA FLASH trn board. Trong danh sch Scripts, chn Enable Dataflash (SPI0_CS1) v nhn nt Execute. SAM-BA s thit lp cu hnh cho SPI DATA FLASH chun b chuyn d liu. Tip t c trong danh sch Scripts, chn Send Boot File v nhn nt Execute, browse n file AT91BootStrap.bin bin dch v nhn Open. SAM-BA s lu AT91BootStrap.bin vo a ch 0x0000 c a SPI DATA FLASH. Np U-boot: Vn trong th DataFlash AT45DB/DCB, trong phn Send File Name, browse n file uImage. Thit lp Address = 0x5200. Nh n nt Send File, SAM-BA s lu u-boot.bin vo a ch 0x5200 trn SPI DATA FLASH. Np Linux Kernel Image: Vn trong th DataFlash AT45DB/DCB, trong phn Send File Name, browse n file u-boot.bin. Thit lp Address = 0x3E800. Nh n nt Send File, SAM-BA s lu uImage vo a ch 0x3E800 trn SPI DATA FLASH. Np Root File System: Qua th NandFlash, trong phn Scripts chn Enable NandFlash v nhn nt Execute, NAND FLASH s c thit lp cu hnh cn thit hot ng. Trong phn Send File Name, browse n file Angstrom2009.rootfs.jffs2. Thit lp Address = 0x0 Nh n nt Send File, Angstrom Root File System s c lu vo NAND FLASH. Qu trnh np cc thnh ph n cn thit cho Embedded Linux hon thnh.
74
Lun n t t nghip
Hnh 8.6 U-boot console. Ta thit lp cc bin mi trng u-boot t ng chp uImage t a ch 0x3E800 trn SPI DATA FLASH vi kch thc 0x1C0000 (1.7MB) vo SDRAM a ch 0x20000000: U-Boot> setenv bootcmd cp.b 0x3e800 0x20000000 0x1c0000; bootm 0x20000000 U-Boot> setenv bootdelay 3 U-Boot> saveenv Kh i ng li board, U-Boot s ch trong 3 giy, nu khng nhn c phm nhn, U-boot s t ng load uImage t SPI DATA FLASH v khi ng Embedded Linux trn board AT91SAM9260-SMISY.
75
Lun n t t nghip
CHNG 9
Lun n t t nghip
77
Lun n t t nghip
78
Lun n t t nghip
79
Lun n t t nghip
CHNG 10
80
Lun n t t nghip
Olimex - SAM9-L9260 Olimex Co. Ltd. SAM9_Boot_Strategies ATMEL Corporation. SAM-BA user guide ATMEL Corporation. AT91BootStrap ATMEL Corporation. The Universal Boot Loader ("Das UBoot") DENX computer system Co. The U-boot bootloader Michael Opdenacker, Thomas Petazzoni Free Electrons. AT91SAM Linux ATMEL Corporation. Website: http://www.at91.com/linux4sam/
81