Formula Node là cấu trúc dùng để thực hiện các dãy công th c toán h c bên trong nó. Khi dùng Formula Node ta có thể vào các công th c trực ti p trong một Block diagram nh chuột ch độ Labeling Tool. Để t o các đầu vào và các đầu ra, bấm vào đư ng viền c a Formula Node và ch n Add Input (Add Output), đánh vào tên bi n vào bên trong hộp. Các công th c đư c đánh vào bên trong đư ng viền c a Formula Node, mỗi công th c trình bày ph i k t thúc bằng dấu chấm phẩy (;). Ví d minh h a Formula Node có d ng như hình 3.18.
Hình 3.18: Formula Node
Để truy c p Formula Node ta ch n: Functions=> Structures=> Formula Node Các toán t và các hàm có thể dùng bên trong Formula Node đư c liệt kê trong c a s Help c a Formula Node.
3.3. SubVI và cách xây d ng subVI[11] 3.3.1. Khái ni m SubVI
Khi thi t k chư ng trình trong LabVIEW, ta thư ng chú ý thi t k các VI và xác
đnh đầu vào và đầu ra cho chúng. Khi đó mỗi VI thực hiện một ch c năng xác
đnh. Trong việc l p trình, các VI đó có thểđư c s d ng trong các Block Diagram c a 1 VI khác m c độ cao h n. Khi đó VI cao h n đó đư c g i là một SubVI. Như v y, một SubVI ta có thể coi như một chư ng trình con trong các chư ng trình khác, ví d C++… Trong một chư ng trình LabVIEW, không b h n ch số SubVI và
mỗi SubVI không b h n ch việc g i đ n các SubVI. V i tiện ích này, một chư ng trình trên LabVIEW s tr nên dễ hiểu, g n gàng và dễ gỡ rối h n.
3.3.2. Xây d ng SubVI
Có hai cách đ n gi n nhất để xây dựng một SubVI: t o một SubVI từ một VI và t o một SubVI từ một phần c a VI.
3.3.2.1. T o m t SubVI t m t VI:
Các SubVI đư c s d ng thông qua Icon và Conector c a nó. Icon c a một VI là một biểu tư ng đ h a. Conetor c a một VI gán các Control và Indicator cho các Terminal đầu vào và đầu ra. Muốn g i một VI từ Block Diagram c a một VI khác, thì trư c tiên ta ph i t o ra Icon và Conector cho VI đó.
Để t o Icon, ta bấm đúp chuột trái vào biểu tư ng Icon góc bên phía trên c a Front Panel hoặc bấm chuột ph i vào biểu tư ng Icon và ch n Edit Icon… Sau khi
ch n Edit Icon… ta dùng các công c bên trái c a s để t o ra kiểu Icon trong vùng so n th o điểm l n. Hình nh mặc đnh c a Icon xuất hiện trong vùng so n th o. Ph thuộc vào d ng màn hình đang s d ng, ta có thể thi t k kiểu Icon d ng đ n s c, 16 màu hoặc 256 màu. Màu mặc đnh c a Icon là Đen - Tr ng (Black-White), nhưng nó có thể bấm vào m c ch n màu để chuyển sang 16 màu hoặc 256 màu. Ta có thể copy một Icon thành một Icon đen ậ tr ng, và ngư c l i. Xác đnh kiểu Connector Terminal: SubVI nh n d liệu t i và g i d liệu thông qua các Terminal trong ô vuông Connector c a nó. Ta có thể xác đnh các mối liên hệ
bằng cách ch n số Terminal cần thi t cho VI và gán một Front Panel Control hoặc Indicator cho mỗi Terminal. N u Connector c a VI chưa xuất hiện góc trái c a Front Panel thì ta ch n Show Connector từ menu c a Icon. Connector thay th Icon góc bên ph i phía trên c a Front Panel. Kiểu Terminal ban đầu đư c ch n cho VI có số các Terminal bên ph i c a Connector bằng số Indicator trên Front panel và số
Terminal bên trái Connector bằng số Control trên Front Panel. N u điều này không thể có đư c thì phần mềm s ch n kiểu Terminal phù h p gần nhất. Mỗi hình ch nh t trong Connector s tư ng ng v i một đầu vào hoặc đầu ra từ VI.
Hình 3.19: Icon mặc đnh và Icon sau khi đ c t o
Ta có thể ch n một kiểu Terminal khác trong menu Pattern. Ta có thể thêm hoặc lo i bỏ b t Terminal bằng cách ch n Add Terminal hoặc ch n Remove Terminal. Sau khi đã ch n đư c Connector Terminal Pattern ta ph i gán các Front Panel Control và Indicator cho các Terminal theo các bư c sau:
o Bấm vào một Termianl c a Connector, sau đó bấm vào một Front Panel Control hoặc Front Panel Indicator muốn gán cho Terminal đã ch n. Một khung bao xung quanh Front Panel c a Control hoặc Indicator đư c ch n xuất hiện và nhấp nháy.
o Bấm vào một vùng m c a Front Panel và bấm chuột, khung nhấp nháy bi n mất. Termianl và Front Panel Control hoặc Indicator đã ch n đư c g n v i nhau.
Hình 3.20: Cách th c t o Connector c a m t VI 3.3.2.2. T o m t SubVI t m t ph n c a VI:
Để bi n đ i một phần c a VI thành một SubVI đư c g i từ VI khác, ch n một phần trong Block Diagram c a VI, sau đó ch n Edit\Create SubVI. Phần đó s tự động thành một SubVI. Các Control và Indicator đư c tựđộng khai báo cho SubVI m i. SubVI m i tựđộng nối dây v i các đầu dây hiện có và một Icon c a SubVI s thay th phần đư c ch n trong Block Diagram c a VI gốc. Đối v i SubVI này ta có thể điều ch nh đư c Icon & Connector tư ng tự như trên.
3.3.3. Xây d ng ng d ng
Ta xây dựng một VI dùng để mô phỏng việc đo nhiệt độ (Temperature) và dung tích (Volume) c a một bình nư c (Tank) trong môi trư ng LabVIEW.
Hình 3.21: Front Panel và Block Diagram c a m t VI
1. M một Front Panel m i bằng cách ch n File => New. N u đã đóng tất c các VIs thì ch n New VI từ hộp tho i c a LabVIEW.
2. Ch n một cái bình (Tank) từ Control Numberic Palette và đặt nó lên Front Panel.
3. Đánh Volume vào trong hộp nhãn c a nó.
4. Dùng chuột ch độ Labeling Tool đặt thang ch th c a Tank để hiển th dung tích c a Tank từ 0 đ n 1000.
5. Đặt một nhiệt k (Thermometer) từ Control Numberic Palette lân Front Panel. Đánh nhãn c a nó là Temp và đặt thang ch th c a nó từ 0 đ n 100. 6. Front Panel c a VI s giống như hình 3.21.
Xây d ng Block Diagram:
2. Đặt các đối tư ng đư c ch n dư i đây từ Functions palette lên c a s Block Diagram.
Process Monitor (Functions => Select a VI từ LabVIEW\ Activity Directory) - Mô phỏng việc đ c một giá tr nhiệt độ và dung tích từ
một Sensor hoặc từ một bộ bi n đ i.
Random Number Generator (Functions => Numberic): T o ra một số
ngẫu nhiên gi a 0 và 1.
Multipy Function (Functions => Nmberic): Thực hiện phép nhân hai số. Trong ví d này chúng ta cần 2 bộ nhân.
Numberic Constant (Functions => Numberic): T o ra một hằng số. Dùng chuột ch độ Labeling Tool đặt giá tr c a nó. Trong ví d này ta cần 2 hằng số.
3. Dùng chuột ch độ Wring Tool nối tất c các đối tư ng như hình trên. 4. Ch n File=> Save và lưu gi VI v i tên Temp & Volume.vi
5. Từ Front Panel ch y VI bằng cách nhấn vào nút Run trên thanh công c hoặc
ấn Ctrl+R.
6. Đóng VI bằng cách ch n File=> Close. Xây dựng Icon c a VI.
7. Từ Front Panel c a Temp & Volume.vi, bấm chuột ph i vào Icon panel góc trên bên ph i và ch n Edit Icon … để vào Icon Editor, hoặc có thể bấm đúp chuột trái vào Icon panel để làm xuất hiện Icon Editor.
8. Xóa Icon mặc đnh c a VI. Dùng các công c bên trái c a Icon Editor để v Icon m i cho VI giống như hình.
9. Sau khi xây dựng xong Icon m i cho VI, bấm nút OK để đóng Icon Editor, Icon m i s xuất hiện thay th cho Icon mặc đnh.
3.3.4. G r i và s a ch ng trình xây d ng trên LabVIEW
Khi xây dựng chư ng trình trên LabVIEW, ta có thể ti n hành các thao tác s a ch a, thay đ i một cách dễ dàng bằng cách thay đ i, d ch chuyển, lo i bỏ các đối tư ng một cách dễ dàng trên Front Panel và Block Diagram (chú ý các bộ ph n Control và indicator ch có thể xóa đư c trên Front Panel).
G r i ch ng trình:
Một chư ng trình không thể ch y đư c cũng như không thể biên d ch đư c khi chư ng trình đó còn lỗi. Khi chư ng trình đó có lỗi, nút Run s xuất hiện nét gãy khi VI đang đư c so n th o và VI vẫn còn lỗi.
LabVIEW cung cấp một số công c để theo dõi lỗi phát sinh trong quá trình l p trình. N u sau khi so n th o xong mà chư ng trình vẫn không ch y đư c thì m hộp Error List (Window\ Show Error List) để tìm lỗi và xác đnh v trí c a lỗi.
N u như khi chư ng trình đã ch y đư c nhưng k t qu không như ý muốn, ta có thể
s d ng công c theo dõi quá trình thực hiện chư ng trình, k t qu sau mỗi bư c s
đư c hiển th từđó ta có thể xác đnh đư c thu t toán c a ta có đúng hay không.
Để ch n ch c năng này sau khi cho chư ng trình ch y, ta bấm vào nút trên thanh công c c a Block Diagram. Ch c năng đư c minh h a trong hình 3.23.
3.4. Xây d ng giao di n đi u khi n trên máy tính
Hình 3.24: Giao di n trên c a s Front Panel
Ch ng 4
THI T K CARD GIAO TI P
4.1. Gi i thi u chung vi đi u khi n.[7]
AVR là tên c a một lo t các bộ vi điều khiển do công ty Atmel s n xuất, có ki n trúc RISC (Reduced Instruction Set Computer) là một ki n trúc ph bi n trong c a các bộ x lý hiện đ i v i nh ng đặc tính sau:
- 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 và 32 thanh ghi đa năng.
- Ki n trúc bộ nh kiểu đư ng ống cho phép làm tăng tốc độ x lý lệnh. - Có ch a bộ ph n ngo i ngay trên chip bao g m các c ng I/O số, các bộ
bi n đ i ADC, bộ nh EEFROM, bộ đnh th i UART, bộ đnh th i RTC, bộ điều ch độ rộng xung PWM,.v.v.. Đặc điểm này đư c xem là n i b t so v i nhiều vi điều khiển khác vì trong khi các bộ vi x lý khác ph i tự t o ra bộ truyền nh n UART hoặc giao diện SPI bằng phần mềm thì trên vi điều khiển AVR đã đư c tích h p sẵn:
o Có 48 đư ng dẫn I/O l p trình đư c.
o Bộ truyền nh n UART l p trình đư c.
o Một giao diện SPI đ ng bộ.
o Bộ timer/Counter 8 bit
o Một bộ timer/Counter 16 bit v i ch c năng so sánh vƠ b t mẫu.
o G m bốn lối ra điều bi n độ rộng xung PWM.
o Một đ ng h th i gian thực (RTC-Timer)
o Một bộ bi n đ i ADC 10 bit có đ n 8 kênh lối vào.
o Một bộ phát hiện tr ng thái s t điện áp ngu n nuôi.
o Một bộ so sánh Analog
o Một bộđnh th i Watchdog
- Ho t động v i tốc độ đ ng h đ n 20 Mhz. So v i các h vi điều khiển
khác thì vi điều khiển h ATMEL có tần số xung nh p cho phép tư ng đối cao, c thể là từ 0 đ n 20Mhz tùy theo từng lo i c thể. Xung nh p do bộ dao động t o ra cũng chính lƠ xung nhp c a hệ thống, không ph i qua bộ
chia tần như trong trư ng h p các vi điều khiển ra đ i trư c đó, nên kéo
theo tốc độ x lý lệnh cao.
- Kh năng thực hiện lệnh trong một chu kì xung nh p, AVR có kh năng đ t
đ n tốc độ x lý 20 MPIS (triệu lệnh trong một giơy). Các vi điều khiển SX
cũng có tần số xung nhp cao h n các vi điều khiển AVR nhưng l i có dòng tiêu th tư ng đối l n, ngoài ra l i không có các bộ ph n ngo i vi trên chíp rất tiện d ng cho ngư i dùng như vi điều khiển AVR. Chính các bộ
ph n ngo i vi tích h p đã góp phần lƠm tăng tốc độ x lý lệnh tính chung cho c hệ thống.
Hình 4.1: So sánh th i gian th c hi n 2 l nh gi a các b vi x lý[7]
- Bộ nh chư ng trình vƠ d liệu đư c tích h p ngay trên chíp AVR có t i 3 công nghệ bộ nh khác nhau:
+ Bộ nh EPROM xóa đư c kiểu Flash (luôn luôn l p trình m i đư c)
dùng cho mã chư ng trình mƠ ngư i dùng có thể l p trình đư c.
+ Bộ nh EPROM hay PROM xóa đư c bằng điện, nhưng nội dung bộ
nh vẫn gi nguyên sau khi t t điện áp ngu n. Chư ng trình ngư i dùng có thểđư c l p trình trong th i gian thực khi hệ thống đang ho t động. + Bộ nh RAM tĩnh (SRAM) dùng cho các bi n, nội dung c a bộ nh s
mất đi khi t t điện áp ngu n.
NgoƠi ra, vi điều khiển AVR có t i 32 thanh ghi làm việc đa năng, tất c
đều đư c nối trực ti p v i khối ALU (đ n v logic số h c) vƠ đư c trao đ i trực ti p trên vùng đa ch bộ nh , c thểlƠ 32 ô đầu tiên c a bộ nh (0x00
đ n 0xFF) tư ng ng v i thanh ghi làm việc đa năng R0-R31.
- Kh năng l p trình đư c trong hệ thống. Do cách thi t k và công nghệ bộ
nh đư c s d ng mƠ các vi điều khiển có thểđư c l p trình ngay khi đang
còn cấp ngu n trên b n m ch. Không cần ph i nhấc vi điều khiển ra ngoài b n m ch như nhiều h vi điều khiển khác. Các c ng giao ti p RS-232 và SPI cho phép thao tác dễ dàng thực hiện trên hệ thống.
- Có tốc độ x lý l n h 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ư ngôn
ng C.
- Tất c các vi điều khiển đang lưu hƠnh trên th trư ng đều đư c ch t o bằng công nghệCMOS 0.θ μm.
- Điện áp làm việc cho phép từ2.7v đ n 6v.
- Một ki n trúc đ n gi n và h p lý s giúp ngư i dùng tìm hiểu dễ dàng trong th i gian ng n.
- T p lệnh AVR có t i 113 lệnh cho phép l p trình một cách dễdƠng vƠ đ n
gi n bằng h p ng , nhưng cấu trúc c a bộ x lý Atmel còn cho phép l p trình bằng ngôn ng C.
4.2. C u trúc ph n c ng c a h vi đi u khi n AVR 4.2.1. T ng quan v ki n trúc[7]
Các thanh ghi đa năng truy c p nhanh g m 32 thanh ghi 8 bit đư c truy c p trong một chu kì xung nhp. Điều nƠy có nghĩa lƠ trong 1 chu kì xung nh p ALU thực hiện đư c một phép toán: hai toán h ng đư c xuất từ các thanh ghi đa năng, phép toán đư c thực hiện và k t qu đư c lưu tr l i vào t p các thanh ghi. 6 trong số
không gian d liệu và cho phép tính đa ch hiệu d ng. Một trong 3 con trỏ đa ch cũng đư c dùng làm con trỏ đa ch cho ch c năng tìm ki m b ng hằng số. Các thanh ghi có ch c năng b xung này là các thanh ghi 16 bit X,Y,Z.
ALU: Hỗ tr các ch c năng số h c và ch c năng logic gi a các thanh ghi. Các
phép toán trong thanh ghi cũng đư c thực hiện trong ALU.
Hình 4.2: Ki n trúc c a b x lý AVR[7]
Ngoài ch độ đ nh đa ch gián ti p thanh ghi, ch độ đ nh đ a ch bộ nh thông
thư ng cũng có thểđư c dùng trong t p các thanh ghi đa năng. Nguyên nhơn lƠ các