Mô phỏng vi điều khiển

Một phần của tài liệu Nghiên cứu hệ thống chiếu sáng thông minh trên xe ToyotaCamry (Trang 40)

1. 3.6 Một số đèn chiếu sáng khác

3.1.4 Mô phỏng vi điều khiển

ô phỏng bộ điều khiển vi mô trong Proteus hoạt động bằng cách áp dụng tệp hex hoặc tệp gỡ lỗi vào phần vi điều khiển trên giản đồ. Sau đó, nó đƣợc đồng mô phỏng cùng với bất kỳ thiết bị điện tử tƣơng tự và kỹ thuật số nào đƣợc kết nối với nó. Điều này cho phép nó đƣợc sử dụng trong nhiều lĩnh vực tạo mẫu dự án trong các lĩnh vực nhƣ điều khiển động cơ, điều khiển nhiệt độ và thiết kế giao diện ngƣời dùng. Nó cũng đƣợc sử dụng trong cộng đồng những ngƣời có sở th ch chung và vì không cần phần cứng nên rất thuận tiện để sử dụng nhƣ một công cụ đào tạo hoặc giảng dạy. Hỗ trợ đồng mô phỏng:

 Công nghệ vi mạch PIC10, PIC12, PIC16, PIC18, PIC24, vi điều khiển dsPIC33

 Bộ vi điều khiển Atmel AVR (và Arduino ), 8051 và ARM Cortex-M3

 Bộ vi điều khiển NXP 8051, ARM7, ARM Cortex-M0 và ARM Cortex- M3

 Bộ vi điều khiển Texas Instruments MSP430, PICCOLO DSP và ARM Cortex-M3

 Parallax Basic Stamp, Freescale HC11, 8086 vi điều khiển 3.1.5 Thiết kế PCB

Mô-đun Bố tr PCB đƣợc tự động cung cấp thông tin kết nối dƣới dạng danhsách mạng từ mô-đun chụp sơ đồ. Nó áp dụng thông tin này, cùng với các quy tắc thiết kế do ngƣời dùng chỉ định và các công cụ tự động hóa thiết kế khác nhau, để hỗ trợ thiết kế bảng không có lỗi. Có thể sản xuất PCB lên đến 16 lớp đồng với k ch thƣớc thiết kế bị giới hạn bởi cấu hình sản phẩm.

3.1.6 Xác minh 3D

Mô-đun 3D Viewer cho phép bảng đang phát triển đƣợc xem ở dạng 3D cùng với mặt phẳng chiều cao bán trong suốt đại diện cho vỏ bảng. Đầu ra STEP sau đó có thể đƣợc sử dụng để chuyển sang phần mềm CAD cơ kh nhƣ Solidworks hoặc Autodesk để gắn và định vị bảng ch nh xác.

3.2 Hƣớng dẫn sử dụng Proteus để vẽ sơ đồ nguyên lý (Schematic) -Bƣớc 1: hởi động chƣơng trình Proteus Professional -Bƣớc 1: hởi động chƣơng trình Proteus Professional

Bạn chạy chƣơng trình Proteus Professional bằng cách nhấp vào biểu tƣợng ISIS Professional trên desktop hoặc chọn Windows >> Programs >> Proteus Professional >> ISIS Professional.

-Bƣớc 2: ở chƣơng trình ISIS Professional

Bạn nhấp vào biểu tƣợng Schematic Capture trên thanh công cụ của giao diện Proteus để mở chƣơng trình con ISIS Professional.

Hình 3. 1 Mở chƣơng trình

Sau khi chƣơng trình mở ra, một không gian làm việc với các nút giao diện để thiết kế mạch sẽ xuất hiện nhƣ hình bên dƣới. Ở trên vùng làm việc có một

khung vuông màu xanh, cần đảm bảo toàn bộ phần mạch đƣợc vẽ nằm trong khung này

Hình 3. 2 Cửa sổ làm viẹc

-Bƣớc 3: ấy các linh kiện cần sử dụng từ thƣ viện của Proteus

Để chọn mở linh kiện của Proteus, đầu tiên nhấp vào nút Component Mode. Tiếp theo ta nhấp vào chữ P để mở thƣ viện.

Hình 3. 3 Chọn linh kiện và mở thƣ viện Khi thƣ viện đƣợc mở, cửa sổ linh kiện sẽ xuất hiện nhƣ sau:

Hình 3. 4 Cửa số thƣ viện Trong đó:

- Keywords: tìm kiếm linh kiện

- Category và Sub-category:Có chứa các thƣ viện linh kiện trong chƣơng trình Proteus

- Results: hiển thị các linh kiện khi đƣợc chọn trong thƣ viện - Schematic Review: hiển thị hình dạng của linh kiện

- PCB Preview: hiển thị sơ đồ chân PCB của linh kiện

Trong cửa sổ chọn linh kiện này bạn gõ tên linh kiện cần tìm vào ô eywords. V dụ, bạn tìm IC 555, hãy gõ 555 vào ô eywords thì IC 555 và tất cả các linh kiện liên quan đến 555 sẽ xuất hiện tự động ở phần Results. Bạn double click vào IC này để chọn nó. Những linh kiện đã đƣợc chọn sẽ xuất hiện ở trong ô Devices. Ta làm tƣơng tự và lấy thêm các linh kiện khác

Sau khi đã lấy đầy đủ các linh kiện từ thƣ viện, nhấn vào nút O để đóng cửa sổ thƣ viện trở về màn hình thiết kế.

ƣu ý: Các linh kiện đƣợc chọn phải có sơ đồ chân PCB còn nếu không bạn phải tạo sơ đồ chân linh kiện khi chuyển sang phần thiết kế mạch in.

Nhấp chuột vào linh kiện cần lấy trong ô Devices, sau đó di chuyển con trỏ ra ngoài màn hình thiết kế nơi cần đặt linh kiện và click chuột thì linh kiện sẽ đƣợc đặt tại đó.

Ta di chuyển hết linh kiên ra ngoài màn hình thiết kế nhƣ hình sau:

Hình 3. 5 Các linh kiện trong cửa sổ làm việc Di chuyển linh kiện

Để di chuyển linh kiện từ vị tr này đến vị trị khác, bạn thao tác nhƣ sau: Nhấp và giữ trái chuột vào linh kiện cần di chuyển, sau đó rê chuột đến vị tr mới và thả chuột ra. Bạn cũng có thể dùng lệnh Block ove trên thanh công cụ di chuyển linh kiện.

-Xoay linh kiện

Để xoay các linh kiện bạn thao tác nhƣ sau:

Đặt con trỏ lên linh kiện cần xoay bấm phải chuột, chọn các lệnh xoay (rotate)theo ý muốn. ta cũng có thể lật mirror linh kiện theo chiều ngang hay chiều dọc cũng từ cửa sổ tắt này. Ngoài ra cũng có thể dùng công cụ Block Rotate trên thanh công cụ để xoay linh kiện.

-Xóa linh kiện

Đặt con trỏ lên linh kiện cần xóa rồi bấm phải chuột sau đó chọn lệnh Delete Object từ shortcut menu. Ngoài ra ta cũng có thể dùng ph m Delete để xóa linh kiện hoặc dùng công cụ Block Delete trên thành công cụ để xóa linh kiện.

Hình 3. 6 Các thao tác với linh kiện -Bƣớc 5: Thay đổi thông số kỹ thuật của linh kiện

Để vẽ mạch một cách nhanh chóng, đôi khi không cần phải lựa chọn linh kiện ch nh xác tới cả thông số vì có nhiều linh kiện có tên giống nhau nhƣng khác nhau thông số. Vì vậy, ta cần phải thay đổi các thông số kỹ thuật cho linh kiện.

V dụ: Sau khi đặt điện trở ra ngoài màn hình thiết kế, ta nhấn đúp linh kiện này, một cửa sổ sẽ hiện ra ta có thể đổi tên và thông số của điện trơ. Sau đó chọn O để hoàn tất việc chỉnh sửa.

Hình 3. 7 Thông số linh kiện -Bƣớc 6: Bố tr , sắp xếp lại linh kiện cho hợp lý

Bạn dùng các lệnh di chuyển linh kiện, lật linh kiện,…nhƣ đã trình bày ở trên để bố tr , sắp xếp lại các linh kiện trong mạch sao cho thật hợp lý trƣớc khi

tiến hành bƣớc tiếp theo. ục đ ch của việc làm này là làm cho sơ đồ mạch đƣợc rõ ràng khi quá trình thiết kế mạch đƣợc hoàn tất.

-Bƣớc 7: Nối dây

Sau khi lấy và sắp xếp các linh kiện theo mong muốn, bạn tiến hành nối các chân linh kiện cho mạch. Bạn tiến hành nhƣ sau:

Đặt con trỏ trên chân linh kiện cần nối dây cho đến khi ô vuông màu đỏ xuất hiện sau đó bạn click chuột vào chân linh kiện và chế độ nối dây đƣợc bắt đầu. Ta đƣa chuột đến chân linh kiện cần nối khác và click chuột một lần nữa để kết thúc quá trình nối dây. Ta tiến hành thao tác tƣơng tự nhƣ vậy cho đến khi hoàn thành sơ đồ mạch.

Để xóa đƣờng nối dây sai, ta nhấp phải chuột trên đƣờng dây nối và chọn Delete Wire hoặc k ch đúp chuột phải trên đƣờng dây nối.

-Bƣớc 8: iểm tra sơ đồ mạch nguyên lý

iểm tra sơ đồ mạch sau khi hoàn thành xong mạch thiết kế là rất quan trong, để tìm đƣợc những lỗi mà trong quá trình thiết kế chƣa phát hiện ra đƣợc. ta thao tác nhƣ sau:

Chọn Tool >> Electrical Rule Check trên thanh công cụ Tools

Nếu có thông lỗi bạn tìm cách khắc phục cho đến khi không còn lỗi và nhận đƣợc dòng thông báo No ERC errors found nhƣ hình dƣới đây.

Sau khi kiểm tra và hiệu chỉnh sơ đồ mạch nhƣ mong muốn bạn nhớ lƣu lại. V dụ về ạch dạo động đa hài phi ổn dùng IC 555 đƣợc vẽ bằng chƣơng trình ISIS của Proteus nhƣ sau:

Hình 3. 9 Ví dụ về mạch mô phỏng

3.3 Giới thiệu phần mềm CodeVision AVR

CodevisionAVR là một trình biên dịch chéo C, môi trƣờng phát triển t ch hợp và bộ tạo chƣơng trình tự động đƣợc thiết kế cho họ các vi điều khiển AVR của Atmel.Chƣơng trình có thể chạy trên các hệ điều hành 2000, XP, Vista và Windows 7 32/64 bit. Bên cạnh các thƣ viện tiêu chuẩn C, CodevisionAVR còn có các thƣ viện dành riêng cho:

-Alphanumeric LCD modules -Philips I2C bus

-National Semiconductor LM75 Temperature Sensor

-Philips PCF8563, PCF8583, Maxim/Dallas Semiconductor DS1302 and DS1307 Real Time Clocks

-Maxim/Dallas Semiconductor 1 Wire protocol

-Maxim/Dallas Semiconductor DS1820, DS18S20 and DS18B20 Temperature Sensors

-Maxim/Dallas Semiconductor DS1621 Thermometer/Thermostat -Maxim/Dallas Semiconductor DS2430 and DS2433 EEPROMs -SPI

-TWI for ATxmega chips -Power management -Delays

-Gray code conversion

-MMC/SD/SD HC FLASH memory cards low level access -FAT acces on MMC/SD/SD HC FLASH memory cards. CodevisionAVR cũng bao gồm bộ tạo chƣơng trình tự động

CodeWizardAVR, nơi cho phép ta viết một chƣơng trình đơn giản chi trong vài phút, gồm các hàm sau:

-Thiết lập truy cập bộ nhớ ngoài -Chip reset source identification - hởi tạo các cổng Output/Input

- hởi tạo các ngắt ngoài External Interrputs - hởi tạo Timers/Counters

- hởi tạo Watchdog Timer - hởi tạo USART UART - hởi tạo Analog Comparator - hởi tạo ADC

- hởi tạo giao diện SPI - hởi tạo giao diện 2 Wire - hởi tạo giao diện CAN

-I2C bus, sensor 75, DS1621 nhiệt kế/nhiệt độ và PCF8563, PCF8583, DS1302, DS1307 khởi tạo đồng hồ thời gian thực.

- hởi tạo bus 1 dây và các cảm biến nhiệt độ DS1820/DS18S20 - hởi tạo module CD

Hình 3. 10 ôi trƣờng phát triển tích hợp CodevisionAVR(IDE) Các thanh cơ bản:

-Thanh enu bar: chứa các tùy chọn cơ bản, gồmFileEdit, Search, View, Project, Tools, Settings, Help.

-Thanh Project: dùng để complie và build các project.

-Thanh Tools : chứa các nút dùng để Run CodeWinzardAVR, Run debugger,…

-Thanh Setting: Chứa các nút dùng để cái đặt cho IDE, Edittor, Debugger, Programmer, Terminal.

-Thanh View: chứa các tùy chọn thay đổi vị tr các cửa sổ bên dƣới. -Thanh Help.

CodevisionAVR IDE bao gồm các cửa sổ: -Code Navigator

-Code Information -Function Call Tree -Cửa sổ lập trình chính -Code templates

-Clipboard History -Messages

Thông thƣờng, chúng ta hay dùng các của số: Code Navigator, Cửa sổ lập trình chính, Messages.

3.3.2 Làm việc với các files .

Ta có thể tạo một file nguồn mới bằng cách sử dụng nút File/View hoặc Ctrl/N. Cửa sổ Create New

file hiện ra, ta chọn Source/O .

Hình 3. 12 Tạo file

Hình 3. 13 Cửa sổ file mới

Ta đã có 1 cửa số mới đƣợc tạo, tên file mới này mặc định là untitled.c . Ta có thể sacve file này với 1 tên mới bằng cách sử dụng File/Save As hoăc biểu tƣợng Save As. Chú ý:

Ở trên cùng có đƣợng dẫn tới file đang hiển thị. Để mở lại fil, ta tìm theo đƣờng dẫn này.

Các thủ tục lƣu, sửa, xóa hay đổi tên file khá đơn giản, ta có thể tự tìm hiểu.

3.3.3 Làm việc với các Project.

Tạo project mới bằng cách vào File/new, cửa số Create New File hiện ra. Ta chọn Project sau đó chọn O .

Hình 3. 14 Tạo project

Cửa số Con firm xuất hiện, ở đây ta chọn YES để xác nhận tạo 1 project mới. Tiếp theo là cửa số CodeWizardAVR dùng để chọn loại chip. Ở đây ta chọn AT90, AtTiny, Atmega, FPS IC, cho phép sử dụng các loại vi điểu khiển tƣơng ứng. Cuối cùng chọn O để xác nhận. Cửa số CodewizardAVR xuất hiện. Trong cửa số này, cho ta những tùy chọn thiết lập ban đầu cho vi điểu khiển của mình.

Hình 3. 15 Cửa số CodewizardAVR

Hình 3. 16 Các thẻ của Atmega Chúng ta chú ý đến các thẻ ở ph a dƣới bên trái trƣớc.

o Thẻ Chip: với các tùy chọn loại chip, chọn xung Clock, Clock Prescaler Divider, và Check Reset Source

o Thẻ Ports: ở đây đã có các port tƣơng ứng với loại vi điểu khiển ta chọn. Trong trƣờng hợp này, ta đã chọn Atmega8 nên các Port gồm B,C,D. Ở mỗi Port lại có các tùy chọn, giúp ta chọn chiều của port Data Direction và giá trị của Port đó Pullup/Output Value .

Với Data Direction: Out là đầu ra, In là đầu vào

Với Pullup/Output Value: 0 là mức thấp, 1 là mức cao, P là có trở treo, T là không dùng trở treo

Các Port khác làm tƣơng tự.

o Thẻ Externa IRQ: Thẻ này cho phép chọn ngắt.

Ứng với mỗi vi điều khiển lại có số lƣợng ngắt khác nhau, ở đây ta chọn Atmega8 vì thế chỉ có 2 ngắt là INT0 và INT1.

T ch vào ngắt ta chọn, sẽ xuất hiện thêm tùy chọn ode. Đây là tùy chọn chế độ xảy ra ngắt. Có các tùy chọn: ow level ngắt khi ở mức thấp , Any Change ngắt với bất kì thay đổi nào , Falling Edge ngắt khi có xung xuống , Rising Edge ngắt khi có xung lên .

Hình 3. 17 Thẻ Timers

oThẻ Timers

Gồm có các thẻ nhỏ: Timer0, Timer1, Timer2, Watchdog. Các thẻ này còn tùy thuộc vào loại vi điều khiển ta chọn ban đầu.

§Ở Timer0 có các tùy chọn: Clock Source nguồn clock , Clock Value giá trị Clokck . Ở đây ta chọn System Clock, 8000kHz.

Nếu ta dùng chế độ OverFlow Interrupt thì chọn vào ô đó.

Timer Value là gía trị Timer mà ta muốn đặt.

Chú ý: Timer value ở dạng hex.

§Thẻ Timer1

Có các tùy chọn Clock Source, Clock Value giống với Timer0. Ta để ý tới tùy chọn Mode (chế độ hoạt động của Timer1).

ặc định là Nomal top=0xFFFF. Đây là chế độ hoạt động bình thƣờng, có chức năng định thời giống với Timer0. Các chức năng còn lại chủ yếu liên quan tới phát xung PW , ta có thể tự tìm hiểu. Nếu chọn 1 mode chức năng liên quan tới PW , ta cần chú ý tới Out. A và Out. B đây là 2 kênh ra tƣơng ứng của chế độ phát PW . 2 ô bên dƣới là các tùy chọn Input Capt và

Interrupton. Với 4 ô nhập giá trị bên dƣới, ta có: Value giá trị của Timer), Inp. Capture giá trị Input capture), Comp. A, B.

oThẻ Alphanumeric CD:cài đặt cho màn hình CD

Ta chọn vào Enable Alphanumeric CD support để k ch hoạt chức năng này. Characters/Line: chọn loại màn hình.

Connections: Chọn các chân của vi điểu khiển cho chức năng CD

oThẻ ADC: chọn chức năng ADC cho vi điều khiển. Ta cần chọn ô

ADC Enable để mở t nh năng này.

Các tùy chọn:

§Use 8 bits, Interrputs.

§Volt. Ref: chọn điện áp tham

chiếu.

§Clock: chọn xung clock.

oThẻ USART:chọn chế độ USART.

Hình 3. 19 Thẻ USART

Ta chọn Receiver nếu muốn nhận,

và Transmitter nếu muốn truyền.

các ô Rx Interrput và Tx

Interrput tƣơng ứng với ngắt nhận

và ngắt truyền. Nhấn vào mũi tên

nếu muốn thay đổi Baud

rate,và x2 nếu muốn gấp đôi tốc độ.

Các tùy chọn Communication Parameters và Mode, tùy thuộc vào phần cứng

của chúng ta.

oThẻ I2C.

Đầu tiên trong mục I2C Port ta chọn Port muốn dùng. Giả sử ở đây ta chọn PORTB

. Xuất hiện thêm các tùy chọn trong đây. Đầu tiên, ta chú ý đến SDA Bit và SCLBit

§SDA (Serial DATA): đƣờng truyền nhận dữ liệu §SCL (Serail Clock): đƣờng truyền xung nhịp

Do ở trên, chúng ta đã chọn Port B nên các Bit chọn ở SDA và SCL là bit của PortB. Chú ý là 2 đƣờng truyền này riêng biệt nên phải khác nhau. Các thẻ

bên dƣới là các thẻ tùy chọn dùng module gì, ta chọn module phù hợp rồi

chọn ôEnable.

Đầu tiên ta chọn trong 1 wire Portvà Data Bitđể chỉ định Port và Bit cho Bus

1 dây. Nếu sử dụng các cảm biến đo nhiệt độ DS1820/DS18S20 ta chọn và ô Enable bên dƣới. Trƣờng hợp muốn dùng vài cảm biến DS1820/DS18S20 kết

Một phần của tài liệu Nghiên cứu hệ thống chiếu sáng thông minh trên xe ToyotaCamry (Trang 40)

Tải bản đầy đủ (PDF)

(88 trang)