Trong những năm gần đây, thực hiện chính sách đổi mới của đảng, nên kinh tế đất nước có nhiều chuyển biến quan trọng, nghành nông nghiệp đã có những bước tăng trưởng khá nhanh, đặc biệt là sản lượng của các loại nông sản như: lúa, ngô, đỗ Chính vì vậy bảo quản và chế biến cần phải được đặc biệt quan tâm nhằm hạn chế quá trình hao hụt về chất lượng sản phẩm trong bảo quản, nâng cao chất lượng sản phẩm.
Những yêu cầu này là mục tiêu lớn để chúng ta hướng tới một nền nông nghiệp tiên tiến có sự quản lý trên quy mô lớn. Mặt khác khối lượng sản phẩm làm ra trong một thời vụ là rất lớn và không thể tiêu thụ ngay tại thời điểm đó, vì vậy công việc bảo quản sau thu hoạch đóng một vai trò hết sức quan trọng. Đây là vấn đề bức xúc được nhiều người đầu tư quan tâm nghiên cứu nhằm tìm ra một biện pháp bảo quản tốt nhất, giảm thiểu những mất mát sau thu hoạch cho người nông dân, đồng thời đảm bảo chất lượng cho sản phẩm phục vụ chế biến sau này. Với đặc điểm địa lí nằm trên vùng nhiệt đới nóng ẩm, mưa nhiều, có khi vào mùa thu hoạc mưa kéo dài hàng tuần với độ ẩm không khí nên tới 90-100% nên không thể áp dụng các phương pháp bảo quản truyền thống như phơi nắng, hong gió. Vì thế sấy là một biện pháp bảo quản hiệu quả mà còn làm tăng chất lượng sản phẩm. Đặc biệt kỹ thuật sấy cò được áp dụng để chế biến rất nhiều sản phẩm quý của việt nam như mít, vải, nhã, chuối
Công nghệ sấy có đạt được hiệu quả hay không phụ thuộc dất lớn vào quy trình, thời gian và nhiệt độ sấy. Sản phẩm nông nghiệp thì rất đa dạng, mỗi loại lại có quy trình riêng. nhưng một hệ thống sấy tốt lại là hệ thống có khả năng sấy được nhiều lại nông sản và đáp ứng các quy trình thích hợp cho từng loại sản phẩm chính vì thế chúng tôi tiến hành nghiên cứu đề tài:
"Nghiên cứu ứng dụng vi điều khiển và máy tính trong điều khiển và giám sát nhiệt độ sấy"
68 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2296 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Nghiên cứu ứng dụng vi điều khiển và máy tính trong điều khiển và giám sát nhiệt độ sấy, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
g nhiÖt ®é. Khi cÊp nguån ®iÖn cho sîi ®èt, nhiÖt ®é cña sîi ®èt lµm nãng luång kh«ng khÝ do qu¹t thæi tíi. NhiÖt ®é dßng khÝ t¨ng lªn, nã t¨ng lªn ®Õn mét nhiÖt ®é nµo ®ã vµ kh«ng t¨ng n÷a, nã gi÷ æn ®Þnh ë nhiÖt ®é nµy. Nh vËy ®èi tîng cña ta ë ®©y chÝnh lµ ®èi tîng cã tÝnh tù c©n b»ng.
D¹ng tæng qu¸t hµm truyÒn ®¹t cña ®èi tîng cã tÝnh tù c©n b»ng ®îc m« t¶ nh sau:
Wdt(s) = KdtW0(s) e-τs
Trong ®ã:
Kdt: HÖ sè truyÒn cña ®èi tîng,
τ : Thêi gian trÔ.
W0(s) =
Trong thùc tÕ kh©u tÜnh cã thÓ lÊy mét trong c¸c d¹ng ®iÓn h×nh sau:
+ Kh©u qu¸n tÝnh bËc nhÊt:
PT1: W(s) =
§Æc tÝnh ®êng qu¸ ®é cña hµm truyÒn nh H×nh 9a.
+ Kh©u qu¸n tÝnh bËc 2:
PT2: W(s) =
§Æc tÝnh ®êng qu¸ ®é cña hµm truyÒn PT2 nh H×nh 9b.
+ Kh©u qu¸n tÝnh bËc n:
PTn: W(s) =
§Æc tÝnh ®êng qu¸ ®é cña hµm truyÒn PTn nh h×nh 9b.
t
h(t)
h(t)
t
a, b,
H×nh 9: ®Æc tÝnh qu¸ ®é cña hµm truyÒn
● X¸c ®Þnh h»ng sè thêi gian T1 cña PT1:
Mçi mét kh©u cã mét ph¬ng ph¸p x¸c ®Þnh h»ng sè thêi gian kh¸c nhau. Kh©u cã cÊu tróc cµng phøc t¹p th× viÖc x¸c ®Þnh c¸c th«ng sè cµng khã kh¨n. Trong ph¹m vi ®Ò tµi nµy chØ nªu lªn c¸ch x¸c ®Þnh c¸c th«ng sè cho m« h×nh PT1. ViÖc x¸c ®Þnh c¸c th«ng sè (Kdt, T1) cña PT1 ®îc thùc hiÖn qua c¸c bíc sau:
+ KÎ tiÕp tuyÕn víi ®êng ®Æc tÝnh t¹i t = 0.
+ X¸c ®Þnh giao ®iÓm cña ®êng tiÕp tuyÕn ®ã víi ®êng tiÖm cËn Kdt= h().
+ Hoµnh ®é cña giao ®iÓm võa x¸c ®Þnh chÝnh lµ tham sè T1 cÇn t×m.
Nhîc ®iÓm cña ph¬ng ph¸p nµy lµ phô thuéc nhiÒu vµo ®é chÝnh x¸c viÖc kÎ tiÕp tuyÕn. NÕu ®Æt sai tiÕp tuyÕn t¹i 0 mµ h(t) l¹i cã hÖ sè khuÕch ®¹i Kdt lín th× kÕt qu¶ T1 sÏ cã sai sè lín. §Ó tr¸nh ®îc ®iÒu nµy ta ®i tõ hµm truyÒn W(s), ®Ó cã H(s) = råi chuyÓn ngîc sang miÒn thêi gian sÏ ®îc:
h(t) = k(1- ).
Nh vËy t¹i thêi ®iÓm T :
h(T) = k(1-e-1) 0.632*K.
Nãi c¸ch kh¸c t¹i ®óng thêi ®iÓm T hµm h(t) sÏ ®¹t 63.2% gi¸ trÞ cùc ®¹i. VËy ®Ó x¸c ®Þnh T th× sau khi t×m ®îc K ta tÝnh h(T) = 0.632*K råi tõ ®ã suy ngîc l¹i T.
Trong nhiÒu trêng hîp kh«ng thÓ t¹o ra ®îc mét nhiÔu bËc thang 1(t), ngêi ta cã thÓ dïng tÝn hiÖu lµ A*1(t). Khi ®ã hÖ sè khuÕch ®¹i cña m¹ch ®îc tÝnh nh sau:
K = .
H»ng sè thêi gian ®îc x¸c ®Þnh tõ h(T) = 0.632*h().
2.3. X¸c ®Þnh th«ng sè cho bé ®iÒu chØnh
2.3.1. C¬ së lý thuyÕt
Víi ®èi tîng cã hµm truyÒn:
τ - Thêi gian thuÇn trÔ cña ®èi tîng.
NÕu dïng bé ®iÒu chØnh PI ta cã:
XÐt s¬ ®å sau:
x
e
u
y
Th«ng thêng, th«ng sè tèi u ®îc chän lµ Ti=T1 vµ hÖ hë cã hµm truyÒn:
víi K=K0 .K1
M«®un vµ pha nh ®îc x¸c ®Þnh nh ë H×nh 12:
│W(jω)│=
NÕu ®é dù tr÷ æn ®Þnh vÒ biªn ®é ®îc chän lµ 0,5 t¬ng øng víi gãc dÞch pha:
H×nh 12: M«®un vµ pha hÖ hë
Tõ ®ã: │W(jωπ) │=
Víi ®é dù tr÷ æn ®Þnh trªn ta chän K sao cho:
.
2.3.2. Chän bé ®iÒu chØnh vµ x¸c ®Þnh th«ng sè bé ®iÒu chØnh
Víi hÖ thèng cã hµm truyÒn cña ®èi tîng nh sau:
.
Ta chän bé ®iÒu chØnh PI víi c¸c th«ng sè sau:
Ti=T1=35 (s).
V× hÖ thèng còng kh«ng cÇn cã sù t¸c ®éng qu¸ nhanh nªn ta chän: Kc= 270.
Nh vËy bé ®iÒu chØnh PI ®îc chän nh sau:
.
§Ó thùc hiÖn hµm nµy trong vi ®iÒu khiÓn ta ph¶i tiÕn hµnh chuyÓn nã vÒ ph¬ng tr×nh sai ph©n.
Chän thêi gian trÝch mÉu lµ 1 gi©y, tiÕn hµnh rêi r¹c ho¸ theo ph¬ng ph¸p sè Tustin ta cã hµm truyÒn theo z nh sau (thay , víi T lµ thêi gian trÝch mÉu):
hay:
(1)
Víi Y(z) lµ tÝn hiÖu ra rêi r¹c,
U(z) lµ tÝn hiÖu vµo rêi r¹c.
Theo tÝnh chÊt dÞch dÞch hµm gèc: zn.Y(z)=Y(k+n) (2)
Thay (2) vµo (1) ta cã:
.
Sau khi x¸c ®Þnh ®îc bé ®iÒu khiÓn vµ th«ng sè cña nã ta tiÕn hµnh kh¶o s¸t chóng.
KÕt qu¶ kh¶o s¸t ®îc cho trong H×nh 13:
H×nh 13: KÕt qu¶ kh¶o s¸t hÖ thèng khi cã bé ®iÒu chØnh
Víi kÕt qu¶ nh trªn, khi cã bé ®iÒu chØnh thêi gian qu¸ ®é lµ 16(s). Trong khi nÕu kh«ng cã bé ®iÒu chØnh thêi gian ®Ó cho nã æn ®Þnh mÊt kho¶ng 200(s). §é sai lÖch tÜnh khi cã bé ®iÒu chØnh b»ng 0. Bé ®iÒu chØnh nµy ®· ®¸p øng ®îc yªu cÇu bµi to¸n ®Ò ra, v× vËy chóng t«i chän bé ®iÒu chØnh nµy ®Ó diÒu khiÓn hÖ thèng sÊy.
Ch¬ng 3
Giíi thiÖu chung vÒ vi ®iÒu khiÓn
3.1. Tæng quan chung vÒ vi ®iÒu khiÓn
3.1.1. C¸c hä vi ®iÒu khiÓn
Bé vi ®iÒu khiÓn (Microcontroller) lµ mét m¹ch tÝch hîp trªn mét chip, cã thÓ lËp tr×nh ®îc víi hÖ thèng tËp lÖnh ®Ó thùc hiÖn mét yªu cÇu nµo ®ã. Bé vi ®iÒu khiÓn ®îc ra ®êi sau Bé vi xö lý. VÒ thùc chÊt th× Bé vi ®iÒu khiÓn lµ Bé vi xö lý, nhng cã thªm c¸c m¹ch ®iÖn hç trî, c¸c thµnh phÇn I/O ngo¹i vi vµ bé nhí ( bé nhí ch¬ng tr×nh vµ bé nhí d÷ liÖu)... ®îc tÝch hîp cïng nhau trªn mét b¶n m¹ch. Bé vi ®iÒu khiÓn ®Çu tiªn ra ®êi n¨m 1971, lµ bé vi ®iÒu khiÓn 4 bÝt TMS1000 cña C«ng ty Texas Instruments. Sau khi dßng s¶n phÈm nµy ra ®êi, nã ®· ®îc øng dông vµo rÊt nhÒu lÜnh vùc: s¶n xuÊt m¸y tÝnh bá tói, ®iÒu khiÓn lß vi sãng, sö dông cho c¸c bé ®Þnh thêi c«ng nghiÖp.
N¨m 1976, C«ng ty Intelligen Electronics (INTEL) cho ra ®êi thÕ hÖ ®Çu tiªn cña vi ®iÒu khiÓn 8 bÝt víi tªn gäi 8084. Trong bé vi ®iÒu khiÓn nµy, ngoµi bé vi xö lý trung t©m ngêi ta tÝch hîp thªm c¸c bé nhí d÷ liÖu, bé nhí ch¬ng tr×nh, c¸c cæng vµo ra sè, c¸c bé ®Þnh thêi... §Õn n¨m 1980, thÕ hÖ thø hai cña bé vi ®iÒu khiÓn ra ®êi, ®ã lµ vi ®iÒu khiÓn 8051. HiÖn nay vi ®iÒu khiÓn 8051 ®îc s¶n xuÊt vµ sö dông réng r·i. Bªn c¹nh ®ã c¸c c«ng ty s¶n xuÊt còng ph¸t triÓn cho m×nh nh÷ng bé vi ®iÒu khiÓn cã tÝnh n¨ng ®Æc biÖt lµm cho thÞ trêng vi ®iÒu khiÓn ngµy cµng phong phó vµ ®a d¹ng.
Mét sè hä vi ®iÒu khiÓn th«ng dông ngoµi hä 8051 hiÖn nay:
+ Hä 68HC cña Motorola,
+ Hä Z8 cña Zilog,
+ Hä PIC cña Microchip,
+ Hä H8 cña Hitachi,
+ Hä AVR cña Atmel,
+ Hä CY(PSOC) cña Cypress Microsystem.
3.1.2. hä vi ®iÒu khiÓn MCS-51
Hä vi ®iÒu khiÓn MCS-51 ®îc c«ng bè vµ ®a ra víi s¶n phÈm chÝp 8051 cña intel ®©y lµ mét bíc tiÕn ®¸ng kÓ trong lÞch sö ph¸t triÓn cña c¸c vi ®iÒu khiÓn. ChÝp 8051 ®· trë nªn phæ biÕn vµ ®a d¹ng h¬n sau khi Intel cho phÐp c¸c h·ng s¶n xuÊt kh¸c s¶n xuÊt c¸c s¶n phÈm chÝp biÕn thÓ t¬ng tù nh 8051 nhng ph¶i tu©n thñ mét ®iÒu khiÖn lµ ph¶i d÷ nguyªn m· ch¬ng tr×nh t¬ng thÝch víi chuÈn MSC-51. tõ ®ã suÊt hiÖn nhiÒu phiªn b¶n kh¸c cña 8051 vµ ®Õn nay hä vi ®iÒu khiÓn 8 bÝt ®· cã tíi trªn 250 thµnh viªn do c¸c c«ng ty hµng ®Çu thÕ giíi chÕ t¹o vµ s¶n xuÊt nh Intel, AMD, Simens, Philip, Oki…
Víi ®Æc ®iÓm thèng nhÊt vÒ m· tr¬ng tr×nh theo chuÈn MSC-51 nªn tÊt c¶ c¸c vi ®iÒu khiÓn thuéc hä nµy ®Òu cã cÊu tróc kh¸ chung vµ tiªu biÓu lµ chÝp 8051 cña Intel víi nh÷ng ®Æc trng tãm t¾t nh sau:
* 4 KB Rom
*128 byte Ram
*4 cæng xuÊt/ nhËp ( mçi cæng 8 bÝt)
*2 bé ®Þnh thêi
* M¹ch giao tiÕp nèi tiÕp
* Kh«ng gian nhí ch¬ng tr×nh ngoµi 64K
* Kh«ng gian nhí d÷ liÖu ngoµi 64K
* Bé xö lý bÝt ( 210 vÞ trÝ nhí ®îc ®Þnh ®Þa chØ bÝt )
C¸c phiªn b¶n sau thuéc hä MSC-51 do c¸c h·ng kh¸c s¶n xuÊt cã tæ chøc bé nhí EEFROM cho phÐp xo¸ vµ l¹p tr¬ng tr×nh nhiÒu lÇn, mét xè kh¸c cho phÐp l¹p tr¬ng tr×nh ngay trªn boar, vµ bé nhí ch¬ng tr×nh còng lín h¬n.
H×nh : s¬ ®å khèi cña chÝp 8051
- Interrupt control: ®iÒu khiÓn ng¾t
- Other Rigister: C¸c thanh ghi kh¸c
- Timer 0,1,2: Bé ®Þnh thêi 0,1,2
- CPU: ®¬n vÞ xö lý trung t©m
- ALU: Bé sè häc
- Osillator: M¹ch dao ®éng
- Bus Control: §ên truyÒn d÷ liÖu ®iÒu khiÓn
- I/O Port: Cæng vµo/ra
3.1.3. Hä vi ®iÒu khiÓn AVR
Hä vi ®iÒu khiÓn AVR lµ mét s¶n phÈm cña C«ng ty Atmel míi ®îc tung ra thÞ trêng trong nh÷ng n¨m gÇn ®©y. §èi víi thÞ trêng ViÖt Nam th× thùc sù AVR cßn rÊt míi. N»m trong sè nh÷ng thÕ hÖ vi ®iÒu khiÓn ra ®êi sau cho nªn AVR cã nh÷ng tÝnh n¨ng vµ cÊu tróc h¬n h¼n nh÷ng lo¹i vi ®iÒu khiÓn thÕ hÖ cò nh 8051... Nh÷ng ®Æc tÝnh næi bËt cña AVR:
• KiÕn tróc RISC víi hÇu hÕt c¸c lÖnh cã chiÒu dµi cè ®Þnh, truy nhËp bé nhí n¹p - lu tr÷ (load - store) vµ 32 thanh ghi chøc n¨ng.
• KiÕn tróc ®êng èng lÖnh kiÓu hai tÇng (two stage instruction pipeline) cho phÐp t¨ng tãc ®é thùc thi lÖnh.
• Chøa nhiÒu bé phËn ngo¹i vi ngay trªn chÝp, bao gåm cæng I/O sè, bé biÕn ®æi ADC, bé nhí EPROM, bé ®Þnh thêi, UART, bé ®Þnh thêi RTC, bé ®Þnh thêi WHATDOC, bé ®iÒu chÕ ®é réng xung PWM...
§Õn 48 ®êng dÉn vµo/ra (I/O) lËp tr×nh ®îc,
§Õn 2 bé truyÒn nhËn UART lËp tr×nh ®îc,
Mét dao diÖn SPI ®ång bé,
Mét dao diÖn SPI ®ång bé t¬ng thÝch I2C,
§Õn 3 bé Timer/Counter 8 bit,
Mét bé Timer/Counter 16 bit víi chøc n¨ng so s¸nh vµ b¾t mÉu,
§Õn 4 lèi ra ®iÒu biÕn ®é réng xung PWM,
Mét ®ång hå thêi gian thùc RTC,
Mét bé biÕn ®æi ADC 10 bit cã ®Õn 8 kªnh lèi vµo,
Mét bé ph¸t hiÖn tr¹ng th¸i sôt ®iÖn ¸p nguån nu«i,
Mét bé so s¸nh Analog,
Mét bé ®Þnh thêi Watchdog.
• HÇu hÕt c¸c lÖnh, chØ trõ lÖnh nh¶y vµ n¹p/lu tr÷, ®Òu ®îc thùc hiÖn trong mét chu kú xung nhÞp.
• Ho¹t ®éng víi tèc ®é ®ång hå tõ 6MHz ®Õn 12MHz mµ kh«ng ph¶i th«ng qua bé chia tÇn, tèc ®é xö lý ®Õn 12MPIS (triÖu lÖnh trong mét gi©y).
H×nh 14: So s¸nh thêi gian thùc hiÖn lÖnh ë c¸c bé vi ®iÒu khiÓn kh¸c nhau
• Bé nhí ch¬ng tr×nh vµ bé nhí d÷ liÖu ®îc tÝch hîp ngay trªn chÝp:
Bé nhí EPROM xo¸ ®îc kiÓu Flash,
Bé nhí EEPROM hay PROM xo¸ ®îc b»ng ®iÖn, nhng néi dung nhí vÉn gi÷ nguyªn khi mÊt ®iÖn,
Bé nhí RAM tÜnh.
• Kh¶ n¨ng lËp tr×nh ngay trªn m¹ch khi m¹ch ®ang ®îc cÊp ®iÖn mµ kh«ng cÇn ph¶i th¸o chÝp ra.
• §îc ®ãng trong vá víi 8 ch©n ®Õn 64 ch©n ®Ó thÝch øng víi nhiÒu øng dông kh¸c nhau.
• Cã tèc ®é xö lý lín h¬n ®Õn 12 lÇn so víi c¸c vi ®iÒu khiÓn CISC th«ng thêng.
• Hç trî cho viÖc lËp tr×nh b»ng ng«n ng÷ bËc cao, ch¼ng h¹n nh C...
• ChÕ t¹o trªn c«ng nghÖ CMOS 0,6mm vµ tiÕn tíi lµ c«ng nghÖ 0,35mm, nh»m ®¹t ®Õn tèc ®é xung nhÞp cao h¬n 50% hiÖn nay, cßn dßng ®iÖn tiªu thô sÏ gi¶m ®i mét phÇn ba.
• §iÖn ¸p lµm viÖc ®îc phÐp thay ®æi trong kho¶ng réng, tõ 2,7V ®Õn 6,0V.
• KiÕn tróc ®¬n gi¶n vµ hîp lý gióp cho ngêi sö dông dÔ dµng lµm quen.
• TËp lÖnh ®Õn 133 lÖnh, cho phÐp dÔ dµng lËp tr×nh b»ng hîp ng÷ hoÆc ng«n ng÷ C.
3.1.4. Lùa chän vi ®iÒu khiÓn
Tõ so s¸nh tÝnh n¨ng vµ tèc ®é sö lý lÖch cña c¸c vi ®iÒu khiÓn nh ®· nghiªn cøu chóng t«i nhËn thÊy AVR cã nh÷ng u ®iÓm vît chéi h¬n h¼n, vµ h¬n hÕt 1 sè vi ®iÒu khiÓn AVR cßn ®îc tÝch hîp c¸c tÝnh n¨ng míi nh kh¶ n¨ng chuyÓn ®æi t¬ng tù sang sè, bé so s¸nh t¬ng tù, nhiÒu timer víi nhiÒu chøc n¨ng linh ho¹t, 14 vect¬ ng¾t, cho phÐp thay ®æi ch¬ng tr×nh ngay trªn boar m¹ch ®iÒu khiÓn nªn rÊt phï hîp cho viÖc øng dông ®iÒu khiÓn hÖ thèng sÊy. ChÝnh v× thÕ chóng t«i quyÕt ®Þnh lùa chän ATMEGA8535 lµ mét thµnh viªn cña hä ®iÒu khiÓn AVR 8 bit víi c¸c u ®iÓm sau:
• Ho¹t ®éng víi møc tÝch cùc cao, c«ng suÊt thÊp.
• D¶i ®iÖn ¸p ho¹t ®éng tõ 2,7V ®Õn 5,5V.
* §îc x©y dùng dùa trªn cÊu tróc RISC víi 130 lÖnh, phÇn lín lÖnh ®îc thùc hiÖn trong mét chu kú xung nhÞp:
• 32 thanh ghi ®a n¨ng 8 bit.
• Kh¶ n¨ng xö lý lªn tíi 16 MPIS ë tÇn sè ®ång hå 16 MHz.
* Bé nhí ch¬ng tr×nh vµ bé nhí d÷ liÖu:
• 8 Kbytes bé nhí Flash.
• Kh¶ n¨ng ghi xo¸ ®Õn 10 000 lÇn.
• Lùa chän m· vïng khëi ®éng, kh¶ n¨ng kho¸ bit ®éc lËp, cho phÐp ®äc khi vÉn ghi d÷ liÖu.
• 512 Bytes EEPROM cã thÓ ghi xo¸ ®Õn 100 000 lÇn.
• 512 Bytes RAM cã thÓ kho¸ ch¬ng tr×nh b»ng phÇn mÒm.
* C¸c chøc n¨ng ngo¹i vi:
• Hai bé ®Þnh thêi / bé ®Õm 8 bit víi kh¶ n¨ng b¾t mÉu vµ so s¸nh.
• Mét bé ®Þnh thêi / bé ®Õm 16 bit víi kh¶ n¨ng b¾t mÉu vµ so s¸nh.
• §ång hå thêi gian thùc víi bé dao ®éng riªng.
• 4 kªnh ®iÒu réng xung (PMW).
• 8 kªnh chuyÓn ®æi t¬ng tù / sè (ADC) 10 bit, trong ®ã:
• Hai ®êng giao tiÕp nèi tiÕp ®Þnh híng byte.
• Bé lËp tr×nh truyÒn nhËn nèi tiÕp USART.
• Giao tiÕp nèi tiÕp SPI chñ / tí.
• Bé ®Þnh thêi Watchdoc víi bé dao ®éng riªng trªn chÝp.
• Bé so s¸nh Analog trªn chÝp.
* C¸c chøc n¨ng ®Æc biÖt:
• Khëi ®éng l¹i hÖ thèng, ch¬ng tr×nh ph¸t hiÖn mÊt nguån.
• Bé dao ®éng, läc chuÈn RC bªn trong.
• Ng¾t ngoµi vµ ng¾t trong.
• 6 tr¹ng th¸i ngñ (sleep): rçi (idle), gi¶m ån, gi÷ nguån, nguån thÊp, standby, më réng standby.
H×nh 15: S¬ ®å khèi cña vi ®iÒu khiÓn ATMEGA8535
3.2. CÊu tróc vi ®iÒu khiÓn ATMEGA8535
3.2.1. M« t¶ ch©n
* Ch©n nguån: + Ch©n 10 cÊp nguån Vcc (+5V)
+ Ch©n 11 nèi ®Êt GND (0V).
* PortA (PA7/ADC7 ... PA0/ADC0) n»m tõ ch©n 33 ®Õn ch©n 40 lµ ®Çu vµo cña bé chuyÓn ®æi A/D.
B¶ng 3: B¶ng chøc n¨ng c¸c ch©n PortA
NÕu bé chuyÓn ®æi A/D kh«ng ®îc sö dông th× PortA ®ãng vai trß nh mét cæng I/O 8 bit. PortA ®îc nèi víi c¸c ®iÖn trë treo bªn trong. Khi PortA ®îc sö dông nh mét cæng vµo mµ bÞ kÐo sôt ¸p th× nã sÏ ®ãng vai trß nh mét nguån dßng nÕu c¸c ®iÖn trë treo ho¹t ®éng.
* PortB (PB0 ... PB7) n»m tõ ch©n 1 ®Õn ch©n 8. PortB ®ãng vai trß nh cæng I/O hai tr¹ng th¸i cã ®iÖn trë treo bªn trong.
B¶ng 4: B¶ng chøc n¨ng ch©n PortB
Khi PortB ®îc sö dông nh mét cæng vµo mµ bÞ kÐo sôt ¸p th× nã sÏ ®ãng vai trß nh mét nguån dßng nÕu c¸c ®iÖn trë treo ho¹t ®éng. Ngoµi ra nã cßn mét sè chøc n¨ng phôc vô cho nh÷ng biÕn ®Æc biÖt kh¸c:
+ SCK - PortB, Bit 7 lµ chñ khi nã ®a ra xung ®ång hå vµ lµ tí khi nã nhËn vµo xung ®ång hå cña kªnh SPI.
+ MISO - PortB, Bit 6 nhËn vµ ®a d÷ liÖu ra cña kªnh SPI.
+ MOSI - PortB, Bit 5 ®a ra d÷ liÖu vµ nhËn d÷ liÖu cña kªnh SPI.
+ - PortB, Bit 4 lùa chän tr¹ng th¸i chñ/tí cña kªnh SPI.
+ AIN1/OC0 - PortB, Bit 3:
AIN1 ®Çu vµo ®¶o cña bé so s¸nh analog,
OC0 ®Çu ra cña bé so s¸nh thuËt to¸n. Ch©n nµy còng ®îc thiÕt kÕ gièng nh mét ®Çu ra so s¸nh thuËt to¸n cña bé Timer/Counter0, lµm ®Çu ra ®iÒu biÕn ®é réng xung PWM.
+ AIN0/INT2 - PortB, Bit 2:
AIN0 ®Çu vµo kh«ng ®¶o cña bé so s¸nh analog,
INT2 lµ ch©n ng¾t ngoµi.
+ T1 - PortB, Bit 1 ®Çu vµo cña Timer/Counter1.
+ T0/XCK - PortB, Bit 0 lµ ®Çu vµo cña Timer/Counter0, ®ång thêi còng ®¶m nhËn chøc n¨ng ®Çu vµo tÝn hiÖu xung Clock cña giao tiÕp USART.
* PortC (PC0 ... PC7) n»m tõ ch©n 22 ®Õn ch©n 29. PortB ®ãng vai trß nh cæng I/O hai tr¹ng th¸i cã ®iÖn trë treo bªn trong. Ngoµi chøc n¨ng cña mét cæng th«ng thêng, mét sè ch©n cña PortC cã thªm c¸c chøc n¨ng ®Æc biÖt:
B¶ng 5: B¶ng chøc n¨ng ®Æc biÖt cña mét sè ch©n PortC
+ TOSC2 - PortC, Bit7 ch©n vµo dao ®éng 2 cña bé Timer. Khi cã tÝn hiÖu cho phÐp th× ch©n PC7 kh«ng cßn ®îc sö dông nh cæng I/O th«ng thêng mµ trë thµnh ®Çu ra cña tÝn hiÖu dao ®éng khuÕch ®¹i ngîc, lµ ®iÓm kÕt nèi cña bé dao ®éng tinh thÓ.
+ TOSC1 - PortC, Bit6 ch©n vµo dao ®éng 1 cña bé Timer. Khi cã tÝn hiÖu cho phÐp th× ch©n PC6 kh«ng cßn ®îc sö dông nh cæng I/O th«ng thêng mµ trë thµnh ®Çu ra cña tÝn hiÖu dao ®éng khuÕch ®¹i thuËn, lµ ®iÓm kÕt nèi cña bé dao ®éng tinh thÓ.
+ SDA - PortC, Bit1 giao tiÕp nèi tiÕp d÷ liÖu hai chiÒu. Ch©n PC1 cã mét bé läc bªn trong cho phÐp lo¹i bá nh÷ng sãng vµo < 50ns.
+ SCL - PortC, Bit0 giao tiÕp nèi tiÕp xung clock hai chiÒu. Ch©n PC0 còng cã mét bé läc bªn trong gièng nh PC0.
* PortD (PD0 ... PD7) n»m tõ ch©n 14 ®Õn ch©n 21. Mét sè chøc n¨ng ®Æc biÖt:
B¶ng 6: B¶ng chøc n¨ng ch©n PortD
+ OC2 - PortD, Bit7 ®Çu ra so s¸nh thuËt to¸n cña bé Timer/Counter2, ®ång thêi còng cã chøc n¨ng cña ®Çu ra ®iÒu biÕn ®é réng xung PWM.
+ ICP1 - PortD, Bit6 ch©n vµo b¾t mÉu cho Timer/Counter1.
+ OC1A - PortD, Bit5 ch©n ra bé so s¸nh thuËt to¸n A cña Timer/Counter1 vµ lµ ch©n ®iÒu biÕn ®é réng xung PWM.
+ OC1B - PortD, Bit4 ch©n ra bé so s¸nh thuËt to¸n A cña Timer/Counter1 vµ lµ ch©n ®iÒu biÕn ®é réng xung PWM.
+ INT1 - PortD, Bit3 lµ ch©n nguån ng¾t ngoµi 1.
+ INT0 - PortD, Bit2 lµ ch©n nguån ng¾t ngoµi 0.
+ TXD - PortD, Bit1 ch©n truyÒn d÷ liÖu cña giao tiÕp USART.
+ RXD - PortD, Bit0 ch©n nhËn d÷ liÖu cña giao tiÕp USART.
* ch©n 9, ch©n vµo reset hÖ thèng.
* XTAL1, XTAL2, ch©n 12,13, ch©n kÕt nèi víi xung ®ång hå hÖ thèng.
* AVCC ch©n 30, lµ ch©n cÊp nguån cho bé chuyÓn ®æi A/D.
* AREF ch©n32, ch©n vµo ®èi chiÕu cña bé chuyÓn ®æi A/D.
3.2.2. Tæ chøc bé nhí bªn trong ATMEGA8535
Bé vi ®iÒu khiÓn AVR ®îc x©y dùng trªn kiÕn tróc Harvard, bé nhí d÷ liÖu vµ bé nhí ch¬ng tr×nh t¸ch biÖt nhau ®Ó cã thÓ thùc hiÖn ®ång thêi ®îc mét khèi lîng lín c«ng viÖc.
H×nh 18: KiÕn tróc ATMEGA8535
Bus d÷ liÖu ®îc sö dông cho bé nhí d÷ liÖu lµ bus 8 bit, cho phÐp kÕt nèi c¸c bé phËn ngo¹i vi víi tÖp thanh ghi. Bus d÷ liÖu dïng cho bé nhí ch¬ng tr×nh cã ®é réng 16 bit vµ chØ nèi víi thanh ghi lÖnh.
S¬ ®å bé nhí:
Khu vùc øng dông
Bé nhí ch¬ng tr×nh
Khu vùc khëi ®éng
$FFF
R0
R2
...
R30
R31
Bé nhí d÷ liÖu
$0000
EEPROM
d÷ liÖu
$01
...
$3F
$00
SRAM
trong
$0020
$005F
$0060
$025F
$0000
TÖp thanh ghi
Thanh ghi I/O
H×nh 19: S¬ ®å bé nhí cña vi ®iÒu khiÓn ATMEGA8535
* Bé nhí ch¬ng tr×nh lµ bé nhí Flash cã dung lîng 8Kx16 bit. §Ó tiÖn cho viÖc b¶o vÖ b»ng phÇn mÒm th× bé nhí ch¬ng tr×nh ®îc chia lµm hai khu vùc lµ khu vùc øng dông vµ khu vùc khëi ®éng. Bªn c¹nh c¸c lÖnh ®îc lu tr÷, bé nhí ch¬ng tr×nh còng lu tr÷ c¸c vector ng¾t b¾t ®Çu t¹i ®Þa chØ $000.
...
R26
R27
R28
R29
R30
R31
Byte LOW thanh ghi X
Byte HIGH thanh ghi X
Byte LOW thanh ghi Y
Byte HIGH thanh ghi Y
Byte LOW thanh ghi Z
Byte HIGH thanh ghi Z
* Bé nhí d÷ liÖu ®îc b¾t ®Çu víi TÖp thanh ghi, sau ®ã lµ c¸c Thanh ghi I/O vµ SRAM trong. TÖp thanh ghi gåm cã 32 thanh ghi (R0... R31) t¬ng øng víi ®Þa chØ $0000... $001F. Toµn bé c¸c thanh ghi nµy ®îc sö dông nh nh÷ng thanh ghi 8 bit. Nhng cã mét ®iÒu ®Æc biÖt ë ®©y lµ c¸c thanh ghi tõ R26... R31 cã thÓ kÕt hîp l¹i ®Ó ®îc sö dông nh 3 thanh ghi 16 bit X-Y-Z.
H×nh 20: Tæ chøc thµnh thanh ghi X,Y,Z
Thanh ghi I/O gåm cã 64 thanh ghi 8 bit n»m ë ®Þa chØ $020... $05F, c¸c thanh ghi nµy lµm nhiÖm vô trao ®æi d÷ liÖu vµo/ra. §«i khi c¸c thanh ghi I/O còng ®îc truy cËp nh SRAM.
Bé nhí SRAM cña ATMEGA8535 cã dung lîng 512 byte, ®îc sö dông cho c¸c ng¨n xÕp còng nh ®Ó lu tr÷ c¸c biÕn...
* Bé nhí EEPROM: ATMEGA8535 cã 512 byte EEPROM, ®îc tæ chøc thµnh mét vïng d÷ liÖu riªng biÖt. ViÖc ghi vµ ®äc ®îc thùc hiÖn trªn tõng byte. §Ó ®äc EEPROM, CPU ph¶i mÊt 4 chu kú ®ång hå ®Ó hoµn thµnh viÖc ®äc, tuy nhiªn viÖc ghi EEPROM l¹i chØ mÊt cã 2 chu kú.
3.2.3. Mét sè khèi ®iÓn h×nh trong cÊu tróc ATMEGA8535
3.2.3.1. Bé ®Þnh thêi
Vi ®iÒu khiÓn ATMEGA8535 cã hai bé ®Þnh thêi 8 bit vµ mét bé ®Þnh thêi 16 bit. ViÖc ®Æt cho phÐp/cÊm ng¾t ®èi víi c¸c bé ®Þnh thêi ®îc thùc hiÖn qua c¸c thanh ghi ®iÒu khiÓn bé ®Þnh thêi TCCR0 vµ TCCR1. S¬ ®å khèi cña c¸c bé ®Þnh thêi ®îc thÓ hiÖn ë díi:
H×nh 21a: S¬ ®å khèi bé ®Þnh thêi 8 bit
H×nh 21b: S¬ ®å khèi bé ®Þnh thêi 16 bit
3.2.3.2. Bé truyÒn nhËn SUART
ViÖc truyÒn nhËn d÷ liÖu ®îc thùc hiÖn th«ng qua viÖc ghi d÷ liÖu vµo thanh ghi d÷ liÖu cña SUART, ®ã lµ thanh ghi UDR. D÷ liÖu tõ UDR truyÒn ®Õn c¸c thanh ghi dÞch. S¬ ®å khèi bé truyÒn nhËn SUART :
H×nh 22: S¬ ®å khèi bé truyÒn nhËn SUART
3.2.3.3. Bé so s¸nh Analog
Bé so s¸nh analog so s¸nh c¸c gi¸ trÞ ®iÖn ¸p ë lèi vµo, cô thÓ lµ lèi vµo AIN0 (AC+) vµ AIN1 (AC-) víi nhau. NÕu AIN0 lín h¬n AIN1 th× ®Çu ra ®îc kÝch ho¹t lªn møc cao. S¬ ®å khèi cña bé so s¸nh analog:
H×nh 23: S¬ ®å khèi bé so s¸nh analog
3.2.3.4. Bé biÕn ®æi A/D
Bé biÕn ®æi ADC ®îc ®iÒu khiÓn qua bèn thanh ghi ADMUX, ADCSR, ADCH vµ ADCL trong vïng ®Þa chØ vµo/ra. Bé biÕn ®æi ADC cã thÓ ho¹t ®éng ë hai chÕ ®é:
+ Qu¸ tr×nh biÕn ®æi ®îc ngêi dïng khëi ®éng,
+ Qu¸ tr×nh biÕn ®æi diÔn ra liªn tôc.
S¬ ®å khèi cña bé biÕn ®æi A/D:
H×nh 24: S¬ ®å khèi bé biÕn ®æi A/D
3.2.4. Ho¹t ®éng ng¾t
Ng¾t lµ mét c¬ cÊu ®iÒu khiÓn dßng lÖnh, c¬ cÊu nµy ®îc thiÕt kÕ trªn hÇu hÕt c¸c vi ®iÒu khiÓn. Khi mét hÖ thèng ho¹t ®éng, cã rÊt nhiÒu sù kiÖn x¶y ra ®ång thêi, ch¼ng h¹n mét nót Ên cã tÝn hiÖu b¸o hiÖu xö lý c«ng viÖc nµo ®ã, trong khi mét byte d÷ liÖu ®· ®Õn cæng nèi tiÕp. §iÒu nµy sÏ g©y khã kh¨n cho cho vi xö lý khi mµ ph¶i gi¸m s¸t nhiÒu c«ng viÖc ®ång thêi. Sù can thiÖp cña ng¾t sÏ lµm cho c«ng viÖc xö lý trë nªn tèt h¬n. Khi xuÊt hiÖn ng¾t, vi xö lý sÏ t¹m thêi ngõng ch¬ng tr×nh chÝnh vµ chuyÓn ®Õn xö lý ch¬ng tr×nh ng¾t, qu¸ tr×nh xö lý ng¾t hoµn thµnh ch¬ng tr×nh chÝnh l¹i tiÕp tôc.
Ch¬ng tr×nh chÝnh
Ch¬ng tr×nh chÝnh
Thêi gian
Ng¾t 1
Ng¾t 2
Ng¾t 1
ISR1
ISR2
H×nh 25: S¬ ®å qu¸ tr×nh ng¾t
Trêng hîp cã nhiÒu ng¾t x¶y ra ®ång thêi, ng¾t cã u tiªn cao h¬n sÏ ®îc chÊp nhËn tríc. Møc ®é u tiªn cña c¸c ng¾t thÓ hiÖn trong b¶ng vector ng¾t:
B¶ng 7: B¶ng c¸c vector ng¾t
3.2.5. TËp lÖnh
TËp lÖnh cho ATMEGA8535 gåm 130 lÖnh, c¸c lÖnh ®îc m« t¶ díi d¹ng ng«n ng÷ ASEM. Tuy nhiªn ®Ó dÔ dµng h¬n nªn viÕt tr¬ng tr×nh b»ng ng«n ng÷ C, sö dông c¸c phÇn mÒm biªn dÞch chuyªn dông nh CodevisionAVR C Compiler, Studio…
Ch¬ng 4
kü thuËt gÐp nèi m¸y tÝnh qua RS232
4.1 vµi nÐt vÒ nguån g«c
Sau mét thêi gian lu hµnh kh«ng chÝnh thøc, ®Õn n¨m 1962, hiÖp héi c¸c nhµ c«ng nghiÖp ®iÖn tö (EIA: The Electronics Industries Association) ®· cho ban hµnh tiªu chuÈn RS-232 ¸p dông cho cæng nèi tiÕp cña m¸y tÝnh PC. C¸c ch÷ RS ®îc viÕt t¾t tõ Recommended Standard (Tiªu chuÈn ®· giíi thiÖu).
Cã hai phiªn b¶n RS – 232 ®îc lu hµnh trong thêi gian t¬ng ®èi dµi lµ RS – 232B vµ RS – 232C. Cho ®Õn nay th× chØ cßn chuÈn RS – 232C vÉn ®îc øng dông trªn tÊt c¶c c¸c m¸y tÝnh PC. ë c¸c níc t©y ©u cßn gäi chuÈn ghÐp nèi nµy lµ chuÈn V.24. EIA ®· c«ng bè tiªu chuÈn RS – 232C víi nç lùc nh»m t¹o ra kh¶ n¨ng ®Ó gÐp nèi c¸c thiÕt bÞ ®o do nhiÒu nhµ s¶n xuÊt cung cÊp mµ kh«ng ®ßi hái cã mét tiªu chuÈn kü thuËt ®Æc biÖt cho tõng trêng hîp.
ý tëng ®Ó x©y dùng tiªu chuÈn RS – 232 lµ ph¶i sö dông cïng lo¹i ®Çu nèi d©y, thÝ dô lo¹i ®Çu nèi 25 ch©n vµ 9 ch©n, ®îc nèi theo cïng mét c¸ch vµ ph¶i sö dông cïng møc ®iÖn ¸p khi biÓu diÔn c¸c sè nhÞ ph©n 1 vµ 0 t¬ng øng. Víi ý tëng nµy, nÕu nh mäi ngêi ®Òu tham gia vµo tiªu chuÈn theo cïng mét c¸ch th× cã thÓ nèi c¸c thiÕt bÞ víi cæng RS – 232 cña c¸c h·ng kh¸c nhau, c¸c mÉu m· kh¸c nhau mµ kh«ng cÇn cã thªm ®iÒu kiÖn nµo. C¸c m«®em, c¸c m¸y in vµ nhiÒu thiÕt bÞ kh¸c cã thÓ ®îc ®Êu nèi vµ ®îc giao tiÕp víi nhau th«ng qua chuÈn gÐp nèi nµy. Ngµy nay, hÇu hÕt c¸c m¸y tÝnh PC ®Òu ®îc trang bÞ mét hoÆc hai cæng nèi tiÕp RS – 232, vµ tÊt c¶ ®Òu cã kh¶ n¨ng sö dông RS – 232, Ýt nhÊt nh mét kh¶ n¨ng tuú chän tõ nhµ s¶n xuÊt m¸y tÝnh hoÆc tõ phÝa ngêi sö dông m¸y tÝnh.
ViÖc thiÕt kÕ cæng RS-232 còng t¬ng ®èi dÔ dµng, ®Æc biÖt khi chän chÕ ®é ho¹t ®éng lµ kh«ng ®ång bé vµ tèc ®é truyÒn d÷ liÖu thÊp, ch¼ng h¹n nh trong kho¶ng tõ 110 ®Õn 1200 baud.
C¸c m¹ch ®iÖn tÝch hîp c¶ bé ph¸t vµ bé nhËn RS-232 ®· ®îc c¸c nhµ s¶n xuÊt kh¸c nhau thiÕt kÕ vµ chÕ t¹o, thÝ dô Motorola, National, Maxim… C¸c chÝp bé ph¸t/bé ®Öm RS-232 tiÕp nhËn møc ®iÖn ¸p TTL ë nèi vµo vµ biÕn ®æi chóng thµnh c¸c møc dµnh riªng cho RS-232 ®Ó truyÒn. C¸c bé nhËn RS-232 lµm viÖc theo c¸ch ngîc l¹i: tiÕp nhËn tÝn hiÖu nèi vµo theo chuÈn RS-232 vµ biÕn ®æi tÝn hiÖu sang møc TTL t¬ng øng. C¸c bé phËn nµy ®Òu n»m trªn b¶ng m¹ch chÝnh hoÆc trªn mét card truyÒn th«ng, nghÜa lµ ë phÝa sau cña cæng RS-232.
4.2 C¸c ®Æc trng §iÖn
4.2.1 C¸c møc ®iÖn ¸p ®êng truyÒn
Møc ®iÖn ¸p cña tiªu chuÈn RS-232C c¶i tiÕn ®îc miªu t¶ trªn h×nh XXX. Víi quy ®Þnh møc l«gic “1” cã ®iÖn ¸p tõ -5V ®Õn -12V vµ møc l«gÝc “0” cã ®iÖn ¸p tõ 5V tíi 12V, c¸c møc ®iÖn ¸p trong ph¹m vi -3V ®Õn +3V lµ tr¹ng th¸i chuyÓn tiÕp, trong khi møc ®iÖn ¸p trong ph¹m vi ±3 ®Õn ±5 l¹i kh«ng ®îc x¸c ®Þnh vµ xÏ dÉn ®Õn c¸c kÕt qu¶ kh«ng thÓ dù tÝnh ®îc nÕu nh ®îc sö dông. V× vËy ®iÓm nµy cÇn ph¶i chó ý khi thiÕt kÕ m¹ch giao tiÕp. ChuÈn RS-232C cßn ®îc cè ®Þnh trë kh¸ng t¶i trong ph¹m vi tõ 3kW ®Õn 7kW vµ trë kh¸ng cña bé ®Öm thÊp h¬n so víi c¸c tiªu chuÈn tríc ®ã. §ång thêi, bé ®Öm ph¶i duy tr× mét tèc ®é t¨ng ®iÖn ¸p b»ng 30V trong mét micr« gi©y. C¸c vi m¹ch cña Motorola lo¹i MC1488 vµ MC1489 ®· hoµn toµn tho¶ m·n c¸c th«ng sè kü thuËt nµy. ChuÈn RS-232C cho phÐp tèc ®é chuyÒn tèi ®a nªn ®Õn 100Kbit/gi©y, nèi vµo cña bé nhËn ph¶i cã trë kh¸ng nhá h¬n 2500pF, ®é dµi cña c¸p nèi tõ m¸y tÝnh tíi ngo¹i vi kh«ng vît qu¸ 15m nÕu kh«ng sö dông modem, c¸c gÝa trÞ truyÒn tèc ®é chuÈn lµ: 50, 75, 110, 150, 300, 600,1200, 2400, 4800, 9600, 19200, 28800,.. , 56600 buad.
4.2.2 §Çu nèi cæng nèi tiÕp trªn m¸y tÝnh pc:
DB-9
1
5
9
6
Cæng nèi tiÕp còng lµ mét d¹ng cæng ghÐp nèi m¸y tÝnh víi c¸c thiÕt bÞ ngo¹i vi. So víi cæng song song th× cæng nèi tiÕp ®îc sö dông réng r·i h¬n, v× vËy ®· h×nh thµnh nh÷ng chuÈn nh RS232, RS449, RS485...
H×nh 44: H×nh d¹ng cæng nèi tiÕp
Sù kh¸c nhau c¬ b¶n gi÷a cæng song song vµ cæng nèi tiÕp chÝnh lµ ë ph¬ng ph¸p truyÒn d÷ liÖu: trong mét thêi ®iÓm chØ cã mét bit ®îc göi ®i däc theo mét ®êng dÉn, ®êng göi vµ ®êng nhËn t¸ch rêi nhau. Tèc ®é truyÒn lín h¬n 100Kbit/s, kho¶ng c¸ch truyÒn trªn mét kho¶ng ®¬n cao h¬n 1Km. CÊu tróc cæng nèi tiÕp rÊt ®¬n gi¶n: chØ cã hai ®êng d÷ liÖu, mét ®êng nèi ®Êt, cßn l¹i lµ c¸c ®êng tr¹ng th¸i thiÕt bÞ vµ ®iÒu khiÓn.
Møc logic cæng nèi tiÕp : + Møc cao +3V ÷ +12V,
+ Møc thÊp -3V ÷ -12V.
B¶ng13: Ph©n bè ch©n trªn cæng nèi tiÕp
Ch©n
Chøc n¨ng
1
Ph¸t hiÖn tÝn hiÖu mang d÷ liÖu
2
D÷ liÖu nhËn tõ DCE tíi DTE qua RD
3
D÷ liÖu göi tõ DTE tíi DCE qua TD
4
DCE th«ng b¸o sµng truyÒn d÷ liÖu
5
So s¸nh tÝn hiÖu víi ®Êt
6
DTE th«ng b¸o s½n sµng nhËn d÷ liÖu
7
DTE th«ng b¸o s½n sµng truyÒn d÷ liÖu
8
DCE th«ng b¸o cho DTE nhËn d÷ liÖu
9
Th«ng b¸o DEC ®ang nhËn d÷ liÖu
4.3 Khung mÉu truyÒn
ViÖc truyÒn d÷ liÖu qua cæng nèi tiÕp RS-232 thùc hiÖn theo kiÓu kh«ng ®ång bé, khu«n mÉu d÷ liÖu víi c¸c bÝt b¾t ®Çu vµ dõng. Ta cã thÓ thÊy dâ lµ t¹i mét thêi ®iÓm chØ cã mét ký tù ®îc truyÒn ®i vµ cã mét kho¶ng thêi gian ph©n c¸ch gi÷a chóng. Kho¶ng thêi gian nµy thùc chÊt lµ kho¶ng thêi gian ho¹t ®éng kh«ng hiÖu qu¶ vµ ®îc ®Æt ë møc cao (-12V). Bé truyÒn göi mét bÝt b¾t ®Çu (start) ®Ó th«ng b¸o cho bé nhËn biÕt mét ký tù sÏ ®îc göi ®Õn trong lÇn truyÒn tiÕp sau. bÝt b¾t ®Çu nµy lu«n lu«n ë møc ‘0’. TiÕp theo lµ 6,7 hoÆc 8 bÝt d÷ liÖu ®îc göi ®i díi d¹ng ký tù m· ASCII , råi ®Õn lµ mét bÝt ch½n lÎ vµ cuèi cïng lµ 1 ho¹c 2 bÝt dõng. H×nh xxxx chØ ra d¹ng khung truyÒn mét ký tù ‘A’ vµ sö dông tÝnh ch½n lÎ lµ lÎ. Kho¶ng thêi gian ph©n c¸ch cña mét bÝt ®¬n quy ®Þnh tèc ®é truyÒn. C¶ bé nhËn vµ bé truyÒn ®Òu ph¶i ®îc ®Æt cïng mét kho¶ng thêi gian bÝt.
4.4. X©y dùng giao diÖn ®iÒu khiÓn
4.4.1. PhÇn mÒm thiÕt kÕ giao diªn Visual Basic 6.0
4.4.2. ThiÕt lËp giao diÖn ®iÒu khiÓn nhiÖt ®é khÝ sÊy
Giao diÖn ®iÒu khiÓn vµ gi¸m s¸t nhiÖt ®é khÝ sÊy cÇn ®¶m b¶o ®îc c¸c chøc n¨ng ®o lêng vµ ®iÒu khiÓn hÖ thèng sÊy trªn m¸y vi tÝnh. Cô thÓ c¸c chøc n¨ng bao gåm:
+ NhËn kÕt qu¶ ®o nhiÖt ®é cña vi ®iÒu khiÓn vµ hiÓn thÞ nªn giao diÖn.
+ Cho phÐp §Æt nhiÖt ®é tõ bµn phÝm vµ ®a nhiÖt ®é ®ã suèng vi ®iÒu khiÓn.
+ Dõng qu¸ tr×nh sÊy tõ bµn phÝm.
+ Cho phÐp hÖ thèng ho¹t ®éng chë l¹i tõ bµn phÝm.
+ Tuú chän chÕ ®é sÊy, vµ ®Þnh thêi gian sÊy.
Tõ c¸c yªu cÇu cña hÖ thèng ®Æt ra chóng t«i tiÕn hµnh nghiªn cøu vµ x©y dùng ®îc giao diÖn ®iÒu khiÓn vµ gi¸m s¸t nhiÖt ®é nh sau:
Giao diÖn ®îc thiÕt lËp gåm, 13 Label dïng ®Ó gi c¸c nh·n vµ phÇn v¨n b¶n thÓ hiÖn trªn giao diÖn. 3 TextBox ®Ó hiÓn thÞ phÇn nhiÖt ®é ®Æt, nhiÖt ®é cña lß sÊy vµ sai lÖch cña hai nhiÖt ®é tríc. 4 CommandButton dïng ®Ó ®iÒu khiÓn c¸c chøc n¨ng ®Æt nhiÖt ®é, cho phÐp dõng hÖ thèng, cho hÖ thèng ho¹t ®éng chë l¹i sau khi dõng vµ ®ãng giao diÖn. 1 bé Timer ®Ó ®iÒu khiÓn thêi gian ®äc d÷ liÖu tõ cæng com1. 1 MSComm dïng ®Ó ®iÒu khiÓn cæng com
PhÇn m· ch¬ng tr×nh ®îc viÕt cô thÓ nh sau:
Dim a, b, x, luu
Private Sub Command1_Click()
a = CByte(txtDat.Text)
x = Chr(a)
MSComm1.Output = x
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Command3_Click()
b = Chr(0)
MSComm1.Output = b
End Sub
Private Sub Command4_Click()
b = Chr(1)
MSComm1.Output = b
End Sub
Private Sub Form_Load()
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - Me.Height) \ 2
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
End Sub
Private Sub Timer1_Timer()
Dim moi, xuat
Dim y As Byte
moi = MSComm1.Input
For y = 20 To 150 Step 1
If moi = Chr(y) Then xuat = y
Next y
If xuat > 10 Then
Text2.Text = xuat
Text3.Text = (a - xuat)
End If
End Sub
Ch¬ng 5
ThiÕt kÕ m¹ch ®iÒu khiÓn nhiÖt ®é cho hÖ thèng sÊy
5.1. S¬ ®å cÊu tróc m¹ch ®iÒu khiÓn
PhÇn m¹ch ®iÒu khiÓn ®îc thiÕt kÕ ra nh»m môc ®Ých ®iÒu khiÓn cho mét hÖ thèng sÊy n«ng s¶n quy m« nhá, sö dông d©y ®iÖn trë ®Ó t¹o nhiÖt cã c«ng suÊt < 3000W. NhiÖt ®é ®îc ®iÒu chØnh n»m trong d¶i tõ 00C ÷ 1500C. M¹ch ®iÒu khiÓn cã c¸c chøc n¨ng ®o vµ hiÓn thÞ nhiÖt ®é cña dßng khÝ ®i vµo buång sÊy, chøc n¨ng ®Æt nhiÖt ®é th«ng qua bµn phÝm vµ tù ®éng æn ®Þnh ë nhiÖt ®é ®Æt th«ng qua viÖc ®iÒu chØnh ®iÖn ¸p ®Æt vµo ®iÖn trë t¹o nhiÖt, chøc n¨ng kÕt nèi víi m¸y tÝnh ®Ó cã thÓ theo dâi kÕt qu¶ vµ thao t¸c ®iÒu khiÓn trªn m¸y tÝnh...
Tõ nh÷ng yªu cÇu ®îc ®Æt ra ta cã s¬ ®å khèi cña m¹ch ®iÒu khiÓn nh sau:
Khèi c¶m biÕn nhiÖt
Khèi chuyÓn ®æi
Bé nhí RAM,ROM
Khèi giao tiÕp m¸y tÝnh
M¸y tÝnh
Khèi xö lý trung t©m
Khèi m¹ch c«ng suÊt
Khèi hiÓn thÞ
Kh©u ®ång bé xung
H×nh 26: S¬ ®å khèi cña m¹ch ®iÒu khiÓn
5.2. Lùa chän thiÕt kÕ vµ ph©n tÝch nguyªn lý tõng khèi
5.2.1. Khèi c¶m biÕn nhiÖt
Tuú vµo yªu cÇu cña c«ng viÖc mµ ngêi ta cã thÓ sö dông nhiÒu c¸c dông cô ®o nhiÖt ®é chuyªn biÖt kh¸c nhau. G¾n víi yªu cÇu thùc tiÔn cña ®Ò tµi lµ ®iÒu khiÓn nhiÖt ®é dßng khÝ trong sÊy n«ng s¶n d¹ng h¹t, nhiÖt ®é sÊy <2000C, vµ nh÷ng øng dông réng r·i cña IC c¶m biÕn nhiÖt nªn chóng t«i chän IC c¶m biÕn nhiÖt lµm dông cô ®o nhiÖt ®é dßng khÝ sÊy.
* Nguyªn lý ho¹t ®éng chung cña IC ®o nhiÖt ®é
IC ®o nhiÖt ®é lµ mét m¹ch tÝch hîp nhËn tÝn hiÖu nhiÖt ®é chuyÓn thµnh tÝn hiÖu ®iÖn díi d¹ng dßng ®iÖn hay ®iÖn ¸p. Dùa vµo ®Æc tÝnh rÊt nh¹y cña c¸c b¸n dÉn víi nhiÖt ®é t¹o ra ®iÖn ¸p hoÆc dßng ®iÖn tû lÖ thuËn víi nhiÖt ®é tuyÖt ®èi. §o tÝn hiÖu ®iÖn ta biÕt ®îc gi¸ trÞ nhiÖt ®é cÇn ®o. Sù t¸c ®éng cña nhiÖt ®é t¹o ra ®iÖn tÝch tù do vµ c¸c lç trèng trong chÊt b¸n dÉn. B»ng sù ph¸ vì c¸c ph©n tö, bøt c¸c electron thµnh d¹ng tù do di chuyÓn qua vïng cÊu tróc m¹ng tinh thÓ t¹o sù xuÊt hiÖn c¸c lç trèng. Lµm cho ®iÖn tö tù do vµ lç trèng t¨ng lªn theo quy luËt hµm mò víi nhiÖt ®é.
+ IC ®o nhiÖt ®é LM335
Lo¹i IC c¶m biÕn nhiÖt nµy do h·ng SGS - Thomson Microelectronic ph¸t triÓn. LM335 ®îc ®ãng vá nhùa theo hai d¹ng tiÖn dông cho thiÕt kÕ:
H×nh 27: KiÓu vá Z(TO92) H×nh 28: KiÓu vá D(SO8)
LM335 lµ lo¹i c¶m biÕn nhiÖt cã ®é chÝnh x¸c cao, ®· ®îc chuÈn ho¸. Nã ho¹t ®éng gièng nh ®i«tzener. B¶ng 9 chØ ra mét sè th«ng sè ho¹t ®«ng cña LM335.
B¶ng 9: Th«ng sè cña LM335
D¶i nhiÖt ®é ®o
-400C ÷ 1000C
D¶i dßng ho¹t ®éng
450 ÷ 5m
Trë kh¸ng ®éng khi vËn hµnh
Nhá h¬n 1
§iÖn ¸p ®Çu ra biÕn thiªn nhiÖt ®é
10mV/0C
Dßng ngîc
15mA
Dßng thuËn
10mA
§iÖn ¸p ®Çu ra ë 250C
2,92V÷ 3,04V
§¸p øng cña c¶m biÕn theo sù thay ®æi cña
nhiÖt ®é:
H×nh 29: §¸p øng cña ®Çu ra theo sù
biÕn ®æi cña nhiÖt ®é
Ta còng cã thÓ dÔ dµng chuÈn ho¸ c¶m biÕn ë 250C ®Ó cã ®îc ®iÖn ¸p ®Çu ra lµ 2,982V b»ng viÖc ®iÒu chØnh biÕn trë VR1 10K.
+ IC thuËt to¸n LM324
LM324 lµ lo¹i thuËt to¸n c«ng suÊt nhá, ®îc tÝch hîp tíi 4 tÇng thuËt to¸n trªn mét vá.
H×nh 31: H×nh d¸ng vµ cÊu t¹o bªn trong LM324
+ LM324 cã b¨ng th«ng réng 1,3MHz.
+ §é lîi 100dB.
+ Dßng cung cÊp nhá 375.
+ §iÖn ¸p nu«i: §¬n cùc +3V ®Õn +30V,
Lìng cùc ±1,5V ®Õn ±15V.
Yªu cÇu khuÕch ®¹i trong thiÕt kÕ lµ kh«ng kh¾t khe, mÆt kh¸c do tÝnh th«ng dông vµ gi¸ rÎ nªn chóng t«i chän LM324 cho thiªt kÕ
* Kh©u t¹o ®iÖn ¸p chuÈn:
Trong kh©u khuÕch ®¹i cña c¶m biÕn nhiÖt, cÇn thiÕt ph¶i t¹o ra mét ®iÖn ¸p chuÈn ®Ó so s¸nh víi tÝn hiÖu ®iÖn ¸p cña c¶m biÕn:
§Ó t¹o ra ®îc møc ®iÖn ¸p æn ®Þnh, ta dïng ®i«t æn ¸p 5,1V ®Êu ngîc víi ®i«t muçi 1N4148 . Sôt ¸p tæng trªn hai ®i«t:
Ut = UD + UDz = 5,1 + 0.6 = 5,7V
Dßng ch¹y trong 1N4148 lµ rÊt nhá (<200mA). Lùa chän dßng 10mA:
R10 = = 630
Sö dông lo¹i biÕn trë nhiÒu vßng - lµ lo¹i biÕn trë cã kh¶ n¨ng ®iÒu chØnh tinh, nèi víi ®iÖn trë 12K ®Ó cã thÓ lÊy ra ®iÖn ¸p chuÈn so s¸nh 2,73V vµ ®iÖn ¸p tham chiÕu 2V-Ref-AVR cho bé chuÓn ®æi A/D.
5.2.2. Khèi chuyÓn ®æi A/D
Nh÷ng lo¹i chÝp th«ng thêng, ®Ó cã thÓ xö lý ®îc mét tÝn hiÖu t¬ng tù, ngêi ta ph¶i biÕn ®æi tÝn hiÖu nµy sang d¹ng tÝn hiÖu sè th«ng qua c¸c bé biÕn ®æi A/D bªn ngoµi chÝp, viÖc nµy lµm t¨ng thªm kÝch thíc m¹ch ®iÖn vµ tiªu thô thªm c«ng suÊt. TÝch hîp bé chuyÓn ®æi A/D vµo trong chÝp ATMEGA8535 lµ mét híng ph¸t triÓn míi cña AVR. Bé chuyÓn ®æi A/D trong chÝp sö dông ph¬ng ph¸p chuyÓn ®æi ADC xÊp xØ liªn tiÕp. Chóng t«i sö dông bé biÕn ®æi A/D trong chÝp ®Ó chuyÓn ho¸ tÝn hiÖu ®iÖn sau kh©u khuÕch ®¹i c¶m biÕn nhiÖt. TÝn hiÖu ®îc ®a vµo ch©n 40 (PA0), ®©y lµ mét trong nh÷ng ch©n vµo cña bé chuyÓn ®æi A/D.
Nguån cÊp cho chuyÓn ®æi A/D lµ nguån +5V, ®îc cÊp vµo ch©n 30(AVCC) th«ng qua ®iÖn c¶m L1. Môc ®Ých cña L1(10uH), C7(105pF), C8(33pF) ®¶m b¶o triÖt nhiÔu cho nguån cÊp A/D. Ch©n 31(AGND) nèi xuèng ®Êt.
Th«ng thêng nÕu ch©n 32(AREF) ®Ó trèng, ATMEGA8535 mÆc ®Þnh ®iÖn ¸p tham chiÕu lµ 2,56V, nã t¬ng øng víi ®iÖn ¸p t¬ng tù ®Çu vµo biÕn ®æi 0V÷5V. Trong trêng hîp nµy ®iÖn ¸p khuÕch ®¹i tõ c¶m biÕn biÕn ®æi 0V÷4V nªn ta ph¶i ®a vµo ®Çu AREF mét ®iÖn ¸p lµ 2V, ®iÖn ¸p ®îc lÊy chuÈn th«ng qua biÕn trë R14.
* Ho¹t ®éng:
Khi cã tÝn hiÖu cho phÐp bé chuyÓn ®æi ho¹t ®éng, nã sÏ cËp nhËt ®iÖn ¸p ®Çu vµo theo thêi gian lËp tr×nh chuyÓn ®æi thµnh ®Çu ra:
+ Kªnh ®¬n ®îc lùa chän, ®iÖn ¸p chuyÓn ®æi
ADC =
0x000 lµ gi¸ trÞ sè ®Çu ra t¬ng øng GND
0x3FF lµ gi¸ trÞ sè ®Çu ra t¬ng øng VREF .
+ Kªnh chän cã ®é ph©n gi¶i GAIN
ADC =
B¶ng 10: Gi¸ trÞ chuyÓn ®æi víi ®é ph©n gi¶i GAIN
5.2.3. Khèi xö lý trung t©m
Khèi xö lý trung t©m ®îc thiÕt kÕ víi thµnh phÇn chñ ®¹o lµ chÝp vi ®iÒu khiÓn ATMEGA8535. Vi ®iÒu khiÓn nµy sÏ ®¶m nhËn viÖc ®iÒu khiÓn c¸c thiÕt bÞ ngo¹i vi - göi th«ng tin ®Õn c¸c thiÕt bÞ ngo¹i vi vµ nhËn l¹i c¸c th«ng tin ph¶n håi.
D¶i tÇn sè sö dông cho chÝp 0 ÷16MHz. Tuú thuéc vµo lo¹i th¹ch anh vµ tÇn sè céng hëng mµ ta chän tô céng hëng cho phï hîp (22pF÷33pF). Chóng t«i lùa chän Y1 lµ 8MHz, tô C14, C15 cã gi¸ trÞ 33pF.
2.4.3. S¬ ®å chÝnh
§Ó thiÕt kÕ cho mét hÖ mang tÝnh ph¸t triÓn, cã thÓ thay ®æi ®Çu vµo hoÆc thªm vµo c¸c thµnh phÇn ngo¹i vi kh¸c, chóng t«i sö dông c¸c CON16 (conector) hai hµng ch©n. §Çu vµo cÊp nguån ®îc thiÕt kÕ qua bé läc RC gåm L210μH, tô ceramicC16 1μF, C1733pF.
5.2.6. Khèi giao tiÕp m¸y tÝnh
Trong thiÕt kÕ øng dông víi vi ®iÒu khiÓn th× ghÐp nèi m¸y tÝnh lµ mét c«ng viÖc b¾t buéc:
+ KÕt nèi m¸y tÝnh ®Ó phôc vô cho viÖc n¹p ch¬ng tr×nh ®iÒu khiÓn vµo trong chÝp.
+ KÕt nèi m¸y tÝnh ®Ó cã thÓ thùc hiÖn ®iÒu khiÓn vµ theo dâi kÕt qu¶ ngay trªn m¸y tÝnh...
5.2.6.1. Bé ®Öm l¹p ch¬ng tr×nh IC 74245
GhÐp nèi trùc tiÕp gi÷a thiÕt bÞ ngo¹i vi víi m¸y tÝnh qua cæng song song sÏ g©y ra nh÷ng rèi lo¹n vÒ th«ng tin cho c¶ hai thiÕt bÞ. MÆc dï cïng lµ møc TTL nhng vÉn cã sù chªnh lÖch møc tÝn hiÖu. V× vËy mµ ngêi ta ph¶i dïng c¸c bé ®Öm lµm trung gian trªn ®êng giao tiÕp.
IC 74245 lµ bé ®Öm 8 bit ba tr¹ng th¸i, ®îc thiÕt kÕ ®Ó phôc vô cho giao tiÕp møc TTL (3 ®Õn 5 v«n). TÊt c¶ c¸c ®Çu vµo ra ®îc trang bÞ m¹ch b¶o vÖ tÜnh ®iÖn, b¶o vÖ sôt ¸p trªn lèi vµo.
+ §iÖn ¸p vËn hµnh VCC 2,0V ÷ 5,5V ,
+ Møc vµo VIN 0V ÷ 5,5V ,
+ Møc ra VOUT 0V ÷ VCC .
S¬ ®å thiÕt kÕ m¹ch n¹p ch¬ng tr×nh cho vi ®iÒu khiÓn
H×nh 47: M¹ch n¹p ch¬ng tr×nh
Chóng t«i sö dông phÇn mÒm n¹p ch¬ng tr×nh Spi – Flash Programmer 3.7 cña Mohammad Asin Khan cung cÊp. §©y lµ phÇn mÒm l¹p tr¬ng tr×nh cho tÊt c¶ c¸c hä vi ®iÒu khiÓn AVR qua cæng song song víi phÇn cøng nh ®· tr×nh bÇy.
5.2.6.2. Bé ®Öm truyÒn dÉn RS-232 IC MAX232
Cæng nèi tiÕp (COM) cña m¸y tÝnh sö dông chuÈn RS232. ChuÈn nµy kh«ng t¬ng thÝch víi møc TTL. V× vËy ph¶i cã nh÷ng thiÕt bÞ chuyÓn ®æi chuÈn nµy sang chuÈn kia vµ ngîc l¹i. IC MAX232 ®îc thiÕt kÕ ®Ó phôc vô cho c«ng viÖc nµy. §iÒu ®Æc biÖt lµ MAX232 chuyÓn ®æi mµ kh«ng cÇn tíi ®iÖn ¸p cÊp ±12V.
H×nh 46: S¬ ®å ch©n vµ cÊu t¹o cña MAX232
C¸c ®Æc tÝnh cña MAX232:
+ Nguån cÊp Vcc 1,5 ÷ 5,5V,
+ Vµo møc thÊp VIL <0,8V,
+ Vµo møc cao VIH >2V,
+ Dßng cÊp Icc 8 ÷ 10mA...
§Ó cã thÓ ho¹t ®éng ta cÇn ph¶i thªm vµo mét sè tô theo khuyÕn c¸o cña nhµ s¶n xuÊt. C¸c tô thªm vµo ®îc nèi tíi c¸c ch©n theo s¬ ®å trªn.
S¬ ®å m¹ch giao tiÕp hiÓn thÞ d÷ liÖu hÖ thèng lªn m¸y tÝnh
5.2.7. Khèi ®ång bé tÝn hiÖu
Trong ®iÒu khiÓn ®iÖn ¸p xoay chiÒu, ®ång bé lµ mét kh©u tèi quan träng. Khi ®ång bé ngêi ®iÒu khiÓn sÏ nhËn biÕt ®îc thêi ®iÓm nµo cã chu kú ®iÖn ¸p lªn vµ xuèng tõ ®ã ph¸t ra xung ®iÒu khiÓn hîp lý. Cã nhiÒu ph¬ng ph¸p ®Ó t¹o tÝn hiÖu ®ång bé nh: sö dông so s¸nh thuËt to¸n, sö dông optodiode, optotransistor... Tuú vµo ph¬ng ph¸p ®îc sö dông mµ tÝn hiÖu ®ång bé thu ®îc kh¸c nhau. Díi ®©y lµ mét d¹ng tÝn hiÖu ®ång bé:
H×nh 52: Mét d¹ng tÝn hiÖu ®ång bé
Víi nh÷ng lo¹i vi ®iÒu khiÓn cò, ngêi thiÕt kÕ ph¶i sö dông tíi c¸c m¹ch ®ång bé ngoµi. Ngîc l¹i ATMEGA8535 cã bé so s¸nh t¬ng tù
(analog) ®îc tÝch hîp ngay trong chÝp nªn chóng t«i chän bé so s¸nh nµy ®Ó ®ång bé tÝn hiÖu víi líi ®iÖn
§iÖn ¸p líi ®îc h¹ ¸p qua biÕn thÕ T1 xuèng kho¶ng 2V, th«ng qua ®iÖn trë R23, R24 10KΩ ®Ó h¹n chÕ dßng mét c¸ch tèi ®a råi ®a tíi hai ®Çu vµo cña bé so s¸nh thuËt to¸n (AIN0, AIN1).
5.2.8. Khèi c«ng suÊt
Khèi c«ng suÊt lµ khèi m¹ch cuèi cïng liªn kÕt víi hÖ thèng. TÊt c¶ nh÷ng thµnh qu¶ cña qu¸ tr×nh ®iÒu khiÓn tríc ®ã ®îc thÓ hiÖn trong kh©u nµy. Trong kh©u nµy chóng t«i chän sö dông triac, bëi v× triac dÔ ®iÒu khiÓn h¬n, gi¸ rÎ... Díi ®©y tr×nh bÇy mét sè linh kiÖn sö dông trong m¹ch nµy:
+ Optotriac MOC3021
H×nh54: H×nh d¹ng bªn ngoµi vµ cÊu t¹o cña OptotriacMOC3021
MOC3021 lµ mét d¹ng triac quang, cã cùc cöa ®îc kÝch b»ng ¸nh s¸ng, do vËy ®¶m b¶o tÝnh c¸ch ly rÊt cao. MOC3021 thÝch hîp víi nh÷ng øng dông cã c«ng suÊt nhá.
* Mét sè th«ng sè cña MOC302:
+ §iÖn ¸p ®iÒu khiÓn trªn ®Çu ra 250V,
+ §iÖn ¸p vµo ®i«t 3V,
+ Dßng vµo ®i«t <50mA,
+ Dßng qua 1,2A ,
+ C«ng suÊt tiªu thô 330mW.
+Triac BT137
H×nh55: H×nh d¹ng bªn ngoµi vµ cÊu t¹o cña BT137
BT137 lµ dßng triac do h·ng Philips Semiconductors chÕ t¹o phôc vô cho nh÷ng øng dông ®ßi hái yªu cÇu ®ãng c¾t m¹ch tèc ®é cao nh: ®iÒu khiÓn ®éng c¬, ®Ìn chiÕu s¸ng, relay, hÖ thèng t¹o nhiÖt... Díi ®©y lµ th«ng sè cña BT137:
+ §iÖn ¸p ®iÒu khiÓn 800V.
+ Dßng cho phÐp ë ®iÖn ¸p 800V lµ 8A, khi tr¹ng th¸i kh«ng lÆp l¹i dßng cho phÐp lªn tíi 65A.
+ C«ng suÊt t¶i 2,4KW.
+ §iÖn ¸p ®iÒu khiÓn ®Ønh cùc cöa 5V.
+ C«ng suÊt trung b×nh trªn cùc cöa 0.5W.
Dùa trªn ®iÒu kiÖn t¶i lµ d©y ®iÖn trë to¶ nhiÖt cã c«ng suÊt 2 ÷ 3KW, ®iÖn ¸p ®iÒu khiÓn 220V 50Hz. Dßng ®iÖn qua t¶i:
It = = 9.09 ÷ 13,6A
Nh vËy chóng t«i chän BT137 víi c¸c th«ng sè nªu trªn lµ phï hîp víi thiÕt kÕ. Tuy nhiªn ®Ó an toµn cho vi ®iÒu khiÓn cÇn ph¶i cã mét kh©u c¸ch ly, ®ång thêi còng lµ kh©u kÝch më gãc cho triac. Optotriac MOC3021 cã nh÷ng th«ng sè phï hîp cho kh©u nµy.
§Çu ra ®iÒu biÕn ®é réng xung PWM(18) ®îc nèi víi ®Çu vµo MOC3021 qua mét ®iÖn trë h¹n chÕ dßng R25 560Ω. Tuy dßng ®Ønh ®Çu vµo lµ 50mA nhng ta h¹n chÕ tíi møc tèi ®a kho¶ng 10 ÷ 20mA. §Çu 6 cña MOC3021 nèi víi Anot cña BT137 qua ®iÖn trë R26 470 Ω ®Ó h¹n chÕ dßng qua cùc cöa BT137 xuèng díi 100mA.
D¹ng ®iÖn ¸p trªn t¶i phô thuéc vµo xung kÝch më triac ®îc m« t¶ trong H×nh 57:
H×nh 57: D¹ng sãng ®iÖn ¸p trªn t¶i
5.2.9. Khèi m¹ch nguån
PhÇn m¹ch nguån ®¶m nhËn chøc n¨ng cÊp nguån cho m¹ch ®iÒu khiÓn ho¹t ®éng vµ b¶o ®¶m æn ®Þnh cho nguån cÊp.
Nguån xoay chiÒu h¹ ¸p xuèng 16VAC, ®îc chØnh lu qua cÇu chØnh lu 2A. Yªu cÇu m¹ch ®iÖn cÇn cã hai møc ®iÖn ¸p lµ 5V vµ 12V, v× vËy chóng t«i lùa chän c¸c IC æn ¸p L7805 (æn ¸p 5V) vµ L7812 (æn ¸p 12V):
1. Input
2. GND
3. Output
H×nh 59: H×nh d¹ng bªn ngoµi cña LM7805, LM7812
Ch¬ng 6
Nghiªn cøu phÇn lËp tr×nh cho vi ®iÒu khiÓn
6.1. Lu ®å thuËt to¸n ch¬ng tr×nh
Yªu cÇu bµi to¸n ®Æt ra cho ch¬ng tr×nh ®iÒu khiÓn ph¶i thùc hiÖn nh÷ng c«ng viÖc sau:
+ ChuyÓn ®æi tÝn hiÖu t¬ng tù tõ c¶m biÕn sang tÝn hiÖu sè.
+ X¸c ®Þnh thêi ®iÓm kh«ng cña líi ®iÖn ®Ó ®ång bé ho¸ tÝn hiÖu ®iÒu khiÓn.
+ Ch¬ng tr×nh xö lý truyÒn dÉn tÝn hiÖu víi m¸y tÝnh
+ §Þnh thêi cho thêi gian trÝch mÉu, vµ kÝch më triac.
Khai b¸o c¸c th viÖn cÇn sö dông
Khai b¸o c¸c biÕn toµn côc
+ Khëi t¹o chuyÓn ®æi A/D
+ Khëi t¹o so s¸nh t¬ng tù
+ Khëi t¹o c¸c bé ®Þnh thêi
+ Khëi t¹o LCD
+ Khëi t¹o truyÒn dÉn
+ Cho phÐp c¸c ng¾t
KiÓm tra tÝn hiÖu nhËn tõ m¸y tÝnh vµ ®a ra quyÕt ®Þnh xö lý
B¾t ®Çu
6.1.1. Ch¬ng tr×nh chÝnh
6.1.2. Ch¬ng tr×nh con phôc vô ng¾t so s¸nh t¬ng tù ®Ó ®ång bé tÝn hiÖu
ana_comp_isr (void)
N¹p tÝn hiÖu ®iÒu khiÓn vµo bé ®Þnh thêi 1. Cho phÐp bé ®Þnh thêi ch¹y
KiÓm tra cã ph¶i nguyªn nh©n ng¾t lµ sên lªn trªn AC0 kh«ng?
Cho nguyªn nh©n ng¾t lµ sên lªn trªn AC0
Cho nguyªn nh©n ng¾t lµ sên xuèng trªn AC0
Xo¸ cê ACI cho ng¾t tiÕp theo vµ tho¸t khái ch¬ng tr×nh
§óng
Sai
6.1.3. Ch¬ng tr×nh con phôc vô ng¾t cho bé ®Þnh thêi 2
§iÒu khiÓn thêi gian trÝch mÉu lµ cña chuyÓn ®æi A/D.
timer2_comp_isr(void)
BiÕn ®Õm ®· b»ng 1000 cha?
T¨ng biÕn ®Õm
+ Cho phÐp chuyÓn ®æiADC
+ Xo¸ biÕn ®Õm
Tho¸t khái ch¬ng tr×nh
6.1.4. Ch¬ng tr×nh con phôc vô ng¾t khi chuyÓn ®æi ADC ®· hoµn thµnh
adc_isr(void)
TÝnh ra nhiÖt ®é thËt cña lß
X¸c ®Þnh sai sè
Thùc hiÖn hµm truyÒn cña bé ®iÒu khiÓn
Khèng chÕ h»ng sè bé ®iÒu khiÓn ®Ó d÷ æn ®Þnh nhiÖt ®é
ViÕt lªn LCD nhiÖt ®é lß
TruyÒn nhiÖt ®é lß nªn m¸y tÝnh
Tho¸t
6.1.5. Ch¬ng tr×nh con phôc vô ng¾t do bé ®Þnh thêi 1 timer1_compa_isr(void)
+ Set bit PD4.
+ TrÔ 100us.
+ Xo¸ bit PD4
+ CÊm timer 1 ho¹t
®éng
Tho¸t
6.2. Ch¬ng tr×nh lËp tr×nh
6.2.1. C¸c c«ng cô lËp tr×nh cho vi ®iÒu khiÓn hä AVR
Tõ khi tung ra thÞ trêng dßng vi ®iÒu khiÓn hä AVR, c«ng ty Atmel còng cho ra ®êi tr×nh dÞch AVR - Assembler, phôc vô cho vi ®iÒu khiÓn lo¹i nµy. AVR - Assembler hç trî viÖc viÕt ch¬ng tr×nh b»ng ng«n ng÷ assembly, biªn dÞch nã sang file.hex; nhng ®Ó cã thÓ sö dông ®îc c«ng cô nµy th× ngêi lËp tr×nh ph¶i rÊt am hiÓu vÒ cÊu tróc cña AVR. Tuy nhiªn AVR còng hç trî ng«n ng÷ C, v× vËy c¸c c«ng ty øng dông AVR thêng t¹o ra c«ng cô riªng cña m×nh dùa trªn ng«n ng÷ C. C¸c hµm trong ng«n ng÷ C ®îc viÕt dùa trªn khèi c¸c lÖnh assembly. Khi sö dông ng«n ng÷ C, c«ng viÖc lËp tr×nh trë nªn ®¬n gi¶n h¬n vµ ngêi lËp tr×nh kh«ng cÇn ph¶i quan t©m nhiÒu ®Õn cÊu tróc phÇn cøng cña chÝp. Trong thiÕt kÕ nµy chóng t«i sö dông c«ng cô lËp tr×nh Code Vision AVR C Compiler Evaluation cña c«ng ty Pavel Haiduc - HP InfoTech s.r.l. C«ng cô nµy hç trî c¶ lËp tr×nh C vµ Assembly:
H×nh 62: Giao diÖn phÇn mÒm lËp tr×nh Code Vision AVR
6.2.2 PhÇn ch¬ng tr×nh
#include
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include
#include
#include
flash char *data[]={"t dat ","t lo"};
char tdat=50,nhan,truyen;
char str[3];
int thdk=3000;
int un1,yn1,un,yn,tick=0;
int tlo,xoay;
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7
#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)
// USART Receiver buffer
#define RX_BUFFER_SIZE 8
char rx_buffer[RX_BUFFER_SIZE];
#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif
// This flag is set on USART Receiver buffer overflow
bit rx_buffer_overflow;
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;
};
};
}
#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
#endif
// USART Transmitter buffer
#define TX_BUFFER_SIZE 8
char tx_buffer[TX_BUFFER_SIZE];
#if TX_BUFFER_SIZE<256
unsigned char tx_wr_index,tx_rd_index,tx_counter;
#else
unsigned int tx_wr_index,tx_rd_index,tx_counter;
#endif
// USART Transmitter interrupt service routine
interrupt [USART_TXC] void usart_tx_isr(void)
{
if (tx_counter)
{
--tx_counter;
UDR=tx_buffer[tx_rd_index];
if (++tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
};
}
#ifndef _DEBUG_TERMINAL_IO_
// Write a character to the USART Transmitter buffer
#define _ALTERNATE_PUTCHAR_
#pragma used+
void putchar(char c)
{
while (tx_counter == TX_BUFFER_SIZE);
#asm("cli")
if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
{
tx_buffer[tx_wr_index]=c;
if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
++tx_counter;
}
else
UDR=c;
#asm("sei")
}
#pragma used-
#endif
//Chuong trinh hien thi du lieu
void display(void)
{ lcd_clear(); //Xoa LCD
lcd_putsf(data[0]); //Hien thi dong chu "t dat"
itoa(tdat,str);//Chuyen so nguyen sang xau
lcd_puts(str);//Hien thi xau
lcd_gotoxy(0,1);//Hien thi nhiet do dat.
lcd_putsf(data[1]);
delay_ms(10);
}
// Standard Input/Output functions
#include
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
// Place your code here
//Set bit kich xung dieu khien
PORTD.4=1;
TCCR1B=0x00;//Cam bo dinh thoi 1 hoat dong
}
// Timer 2 output compare interrupt service routine
interrupt [TIM2_COMP] void timer2_comp_isr(void)
{
// Place your code here
if(tick++==1000)
{
tick=0;
ADCSRA|=0x40;
};
//TIFR|=0x02;
}
// Analog Comparator interrupt service routine
interrupt [ANA_COMP] void ana_comp_isr(void)
{
// Place your code here
if (un1<0) {
thdk=9800;
PORTD.4=0;
} else {
TCNT1=65534-thdk;//nap tin hieu dieu khien vao thanh ghi bo dinh thoi 1
PORTD.4=0;
TCCR1B=0x0A;//Bat dau cho bo dinh thoi 1 hoat dong o tan so 125kHz
}
if(ACSR&0x03==0x03) //Chuyen suon len thanh suon xuong
ACSR&=0xFE; //neu dang la suon len va nguoc lai
else ACSR|=0x03;
//ACSR|=0x13; //Ghi gia tri 1 vao co ACI de xoa co.
}
// ADC interrupt service routine
interrupt [ADC_INT] void adc_isr(void)
{
// Place your code here
// Doc ket qua chuyen doi va tinh nhiet do thuc
tlo=ADCW*0.099;
un1=tdat-tlo;//Tinh sai so
//Bo dieu khien tich phan voi Ti=2.244
thdk=thdk - 20*(un1);
if(thdk<1000){
thdk=1000;
};
lcd_gotoxy(5,1);
itoa(tlo,str);
lcd_puts(str);
xoay=tlo;
truyen=0;
while (xoay!=0){
xoay--;
truyen++;
};
putchar(truyen);
}
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x10;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: On
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x0C;
TCNT2=0x00;
OCR2=0x7D;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x90;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0xD8;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
// Analog Comparator initialization
// Analog Comparator: On
// Interrupt on Output Toggle
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x0B;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AREF pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
ADMUX=0x00;
ADCSRA=0x8E;
// LCD module initialization
lcd_init(8);
// Global enable interrupts
#asm("sei")
while (1)
{
// Place your code here
display();
nhan=getchar();
if (nhan==0) {
PORTD.4=0;
TIMSK=0x00;
} else TIMSK=0x90;
if (nhan>=15){
tdat=nhan;};
delay_ms(10);
};
}
6.3. Ch¬ng tr×nh m« pháng
M« pháng lµ c«ng cô quan träng víi ngêi lËp tr×nh, nã cho phÐp kiÓm tra lçi cña phÇn lËp tr×nh tríc khi n¹p vµo chÝp thùc. Trong thiÕt kÕ nµy chóng t«i sö dông phÇn mÒm m« pháng Proteus 6 Professional.
H×nh 64: Giao diÖn phÇn mÒm m« pháng
6.4. KÕt luËn
+ M¹ch m« pháng ho¹t ®éng tèt.
+ Thêi gian ®¸p øng nhanh, d¹ng sung dÇu ra cña t¶i ®îc c¾t ®óng nh lý thuyÕt.
+ æn ®Þnh l¹i nhanh khi cã sù thay ®æi ®ét ngét cña hÖ thèng.
PhÇn 3
KÕt luËn vµ ®Ò nghÞ
1. KÕt luËn
2. ®Ò nghÞ
Các file đính kèm theo tài liệu này:
- Nghiên cứu ứng dụng vi điều khiển và máy tính trong điều khiển và giám sát nhiệt độ sấy.doc