1
NGHIÊN CU THIT K THIT B ĐIU KHIN T XA HNG NGOI (IRDA) CHO
CÁC H CƠ ĐIN T
Ks. Mai Th Phương Tho, Ks. Chu Ngc Liêm
Ks. Phan Minhn, TSKH. Phm Thượng Cát
Phßng c«ng nghÖ Tù §éng a - Vn C«ng NghÖ Th«ng Tin
Tel: 84-4-8363484, Fax: 84-4- 8363485 e-mail: ptcat@ioit.ncst.ac.vn
Tóm tt:
S ra đời ca Hip hi d liu hng ngoi (Infrared Data Association) và nhu cu kết ni không dây khong cách
ngn và chi phí thp đã và đang kích hot s phát trin ca các thiết b thu phát hng ngoi. Vi mc tiêu ni địa
hoá và gim giá thành sn phm bng cách ng dng công ngh hin đại PSoC, phòng công ngh t động hoá ca
vin Công ngh thông tin đã nghiên cu chế to được thiết b thu pháp s dng công ngh IrDA vi độ tin cy cao,
gn nh và giá tnh h. Thiết b thu phát này có th được ng dng rng rãi trong nhiu lĩnh vc như công nghip,
quc phòng, và đặc bit là trong các ng dng dân dng, các sn phm gia dng cơ đin t.
Research and Development of Infrared Remote Control Device for Mechatronic Systems
Abstract:
The formation of Infrared Data Association and the need of low-cost, short-range wireless data link continue booting
up the development of Send/Receive IrDA devices. Aiming to build Vietnamese devices and to reduce production cost
by using new technology PSoC, Department for Automation and Technology of Institute of Information Technology
has researched and developed sucessfully send/receive IrDA devices, which are reliable, light weight, and low cost.
These IrDA devices can be use broadly in industry, defence and security, and especially in consumer and
mechatronics products.
1 Công ngh IrDA:
Chun hng ngoi IR tu đã được dùng để phát
trin các kết ni không dây vi khongch ngn và
chi phí thp. Công ngh này được s dng nhiu
trong điu khin t xa ca vô tuyến, điu hoà nhit
độ, trong máy tính, máy tính cm tay, các thiết b y tế
và c trong y in...
Trước năm 1993, công ngh hng ngoi phát trin
không đồng b trong các công ty ln vì thiếu chun
chính thc. Để trung hoà vn đề này, Hip hi d liu
hng ngoi (Infrared Data Association – IrDA) đưc
thành lp. Ngày nay, chun IrDA định nghĩa giao
thc truyn thông tin cho rt nhiu các ng dng
hng ngoi.
2 Gii thiu chung v điu khin t xa
s dng công ngh IrDA:
Như đã nói trên, chun hng ngoi IrDA cung cp
cho người s dng mt giao thc thc tế vi chi phí
thp để truyn dn tín hiu. Thêmo đó, nhu cu
truyn d liu gia các dng c động tĩnh bng các
thiết b điu khin t xa trong thi đại t động hoá đã
ch hot s phát trin và ph biến ca truyn d tín
hiu s dng tia hng ngoi.
Nhn rõ tm quan trng ph biến ca công ngh
IrDA, Hãng Cypress đã cung cp 2 user module
IrDATX và IrDARX trong chip PSoC
(Programmable System on Chip) để h trc ng
dng truyn và nhn tín hiu hng ngoi. S dng các
user module này, hai bng mch đã được phát trin,
mt hot động để nhn tín hiu (s được gn trong
thiết b được điu khin), mt hot động trong vai trò
là b điu khin t xa (remote control), gi tín hiu
đến bng mch th nht để điu khin hot động ca
thiết b đó.
3 Nguyên lý hot động
3.1 B điu khin t xa hng ngoi (remote
control):
Module phát được thiết kế (như hình 1) bao gm:
! n phím: gm 13 phím bm để nhn lnh
điu khin t người s dng
2
! n hình hin th LCD: hin th các lnh
đang được thc hin
! Transitor (NPN C2383, độ khuyếch đại 114)
và IrLED để truyn tín hiu hng ngoi.
! Chíp PSoC để nhn lnh t người s dng,
x phát lnh đến dng c đưc điu
khin.
Chíp đặc trưng PSoC được thiết kế s dng 4 user
module là: Counter8, LCD,
PWM8, và IrDATX. Counter và PWM được s dng
để ln lượt to tín hiu cho BaudClk và BitTimerClk
ca IrDATX module. Các giá tr ca Clock và
Processor được đặt để tc độ truyn dn tín hiu trên
nh hng ngoi đạt được là 2.4kbps. Trên lý thuyết,
tc độ truyn dn tín hiu trên kênh hng ngoi có th
đạt ti 115kbps. Nhưng thc tế th nghim cho thy
ti 2.4kbps kênh hng ngoi điu khin bi PSoC
chy n định nht, do đó thiết b hng ngoi được
mc định ti giá try. Vi các kết qu đã đạt được
chúng tôi đang tiếp tc phát trin để to ra chip
chuyên dng cho b điu khin xa hng ngoi ca
máy lnh hai cc.
Hình 1: Sơ đồ mch ca b điu khin xa
3.2 Module nhn
Module nhn (hình 2) gm có:
! chip nhn hng ngoi
! LCD để hin th d liu nhn đưc t điu
khin t xa
! Chíp PSoC để x lý d liu
Dao các d liu nhn đưc,y điu hoà s
các lnh tương ng để cho máy hot động.
Module nhn cũng s dng 4 module người s dng
là PWM8, counter8, LCD và IrDARX. Cu hình cài
đặt ca các module này ging ht các module trong
phn module phát, to điu kin cho vic đồng b
gia b phn thu và phát.
3
Hình 2: Sơ đồ mch thu
3.3 Phn mm
Chương trình vn hành ca module thu và nhn được
viết bng ngôn ng lp trình C,
dch và chy trên môi trường PSoC Designer cung
cp bi Cypress.
Module phát
4
Hình 6: Lưu đồ ca module phát
Trong module phát này, Chương trình main ch làm
nhim v scan keyboard (khi mà keycode bng 0)
gi hàm hin thc phím đã được n (khi đó
keycode s khác 0).
m keyscan() là hàm có nhim v quétn phím để
kim tra xem người s dng có n phím nào không.
Hàm này hot động da trên nguyên tc ca bàn phím
có cu to như sau:
Hình 7: Cu to ca keyboard
T đặc đim cu to ca bàn phím, ta có th viết ra
hàm quét bàn phím bng cách đọc vào các giá tr t
cng 2 ca PSoC.
Hình 8: Mã ngun ca chương trình quét bàn phím
Giá tr ca hàm readkeydelay() hin ti là 300ms. Giá
tr này là giá tr được da trên thc tin th
nghim, cho giá tr khá chính xác ca phím b nhn.
S dĩ ta cn s dng hàm này để chip có th nhn
dng đúng phím b n, tránh trường hp nhiu do môi
trường to ra ti port 2 ca PSoC chip.
Hàm Codeout() được s dng để truyn d liu khi
mt trong nhng phím lnh trên thiết b điu khin t
xa đã đưc n. Hàm này có nhim v to ra hai Byte
lnh, cmdSend, trong đó cmdSend[1] = 0x06 và
cmdSend[2] đượcn giá tr tu theo vic phím nào
đã được n (ví d khi phím 1 được n thì cmdSend[2]
= 0x90. khi phím 2 được n thì cmdSend[2] =
0x91...). Các giá tr khác nhau ca cmdSend[2] đưc
gán bng cách s dng lnh Switch(keycode), vi
keycode khác nhau, ta s có các giá tr khác nhau
ca cmdSend[2].
Sau khi cmdSend đã đưc gán giá tr, hàm
IrDASend() s được gi để phát đi giá tr ca nó trên
nh hng ngoi. đây, có mt lưu ý nh là: tuy
cmdSend ch cha có 2 byte giá tr, ta cn khaio nó
là mt mng gm 3 byte vì hàm IrDASend() ch dng
phát tín hiu khi nó pointer ca mng bng NULL
(mc định nếu như ta định nghĩa mt string). Byte
th 3 ca cmdSend s giá tr 0 để hàm
IrDASend không b
li. Hình 9 là mt đon trong hàm IrDASend, kim
tra giá tr ca con tr để quyết định xem có tiếp tc
gi d liu đi không.
5
Hình 9: Gii thut ca hàm IrDASend
Ví d b điu khin xa hng ngoi cho máy lnh,
khi mun gi đi giá tr ca Gi và Phút sau khi đã gi
lnh BEFORE_HAND, ta phi định nghĩa 1 mng
gm 3 byte time[3]. Khi time[0] = 1, module nhn s
đọc giá tr ca time[1] là gi, và nếu time[0] = 2 t
module nhn s đọc giá tr ca time[1] là phút. Giá tr
ca time[2] luôn luôn bng 0 để ngăn chn vic hàm
IrDASend gi đi các mã lnh ngoài ý mun.
Module thu
Lưu đồ cho chương trình thu tín hiu được th hin
hình 10.
Hình 10: Lưu đồ ca chương trình thu tín hiu
Da vào lưu đồ, ta có th thy, chương trình
nhn ch loop trong vòng while để đợi tín
hiu ti.
Đầu tiên, chương trình kim tra xem là Bit m đầu
ca mt chui tín hiu 8 bít đã được nhn ra chưa?
Nếu được nhn ri, chương trình s chuyn xung
bước tiếp theo. Nếu chưa có bit m đầu nào được
nhn thì nó s đó để ch.
Sau khi bit m đầu đã đưc nhn, chương trình s đợi
cho đến khi mt lnh 8 bit được nhn đủ. Điu kin
để nhn biết là bit RX_COMPLETE trong Control
Register đưc set. Khi bit này bng 1, nghĩa là
buffer để cha 1 byte d liu ca module nhn đã
đầy, ta s phi đọc d liu để tránh trường hp buffer
overflow.
Trong phn x tín hiu, vic x lý lnh s ch được
thc hin sau khi chương trình đọc đủ 2 byte, trong
đó byte đầu là 0x06. Sau đó có 2 trường hp:
! Trường hp th nht: khi lnh truyn ti
không phi là lnh BEFORE_HAND
(0xA1). Trong trường hp này, ta s tu theo
mã lnh mà thc hin các nhim v
người điu khin mun làm.
! Trường hp th hai: khi lnh truyn ti là
lnh BEFORE_HAND (0xA1). Trong
trường hp này, ta s phi đợi để đọc thêm
d liu v gi và phút (mi ln đặt gi hoc
phút s 2 byte d liu gi đến)
4 Kết lun
S dng chip PSoC vi công ngh hng ngoi IrDA,
ta có th chế to thiết b thu phát điu khin t xa vi
độ tin cy cao, gn nh giá thành thp. ng dng
ca thiết b thu phát là rt nhiu trong lĩnh vc công
nghip, dân dng và an ninh quc phòng bi nó cung
cp cho người s dng độ linh động cao rt phù hp
trong thi đim hin nay.