Đề 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

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"

doc68 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2187 | Lượt tải: 0download
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ý, nh­ng 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 nh­ng 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 tr­ng 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 - l­u 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/l­u 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, nh­ng 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 l­u tr÷, bé nhí ch­¬ng tr×nh còng l­u 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. Nh­ng 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­ ®Ó l­u 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 l­u 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 l­u 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 tr­ng §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 nh­ng 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 nh­ng 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 l­u qua cÇu chØnh l­u 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. L­u ®å 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 ch­a? 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; nh­ng ®Ó 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:

  • docNghiê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
Luận văn liên quan