1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bãi giữ xe thông minh

34 655 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 2,73 MB

Nội dung

HỆ THỐNG BÃI GIỮ XE THÔNG MINHGIỚI THIỆU NGÔN NGỮ VERILOG:GIỚI THIỆU KIT XILINX CPLD VÀ HƯỚNG DẪN CÁCH NẠP CODE VÀO KIT XILINX CPLD:CPLD là thiết bị logic lập trình phức hợp có mật độ logic lập trình cao hơn so với các PLD đơn giản như PLA và PAL. CPLD bao gồm nhiều mạch logic, mỗi mạch có thể coi là một SPLD. Trong một mạch đơn SPLD chỉ thực hiện các chức năng logic đơn giản. Các chức năng logic phức tạp hơn cần số lượng khối nhiều hơn, sử dụng ma trận liên kết chung giữa các khối để tạo kết nối. CPLD thường dùng để điều khiển ghép cổng phức hợp ở tốc độ rất cao.

Trang 1

CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH KHOA KỸ THUẬT ĐIỆN TỬ 2

Phạm Thanh Tâm Nguyễn Phúc Nhân Huỳnh Tử Kính

Lớp : D14CQDT02-N

TP.HCM – 2018

Nhóm

12

Trang 2

MỤC LỤC

MỤC LỤC 1

LỜI NÓI ĐẦU 2

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 3

CHƯƠNG I: CƠ SỞ LÝ THUYẾT 4

1) GIỚI THIỆU NGÔN NGỮ VERILOG: 4

2) GIỚI THIỆU KIT XILINX CPLD VÀ HƯỚNG DẪN CÁCH NẠP CODE VÀO KIT XILINX CPLD: 5

a) GIỚI THIỆU KIT XILINX CPLD: 5

b) HƯỚNG DẪN NẠP CODE VÀO KIT XILINX CPLD: 8

CHƯƠNG II THIẾT KẾ

11 1.GIỚI THIỆU CÁC LINH KIỆN CÓ TRONG MẠCH:

11 1.1 ĐỘNG CƠ ĐIỆN SERVO:

11 1.2 ARDUINO:

11 1.3 LED THU PHÁT HỒNG NGOẠI:

13 1.4 IC LM358

14 1.5 LED:

15 1.6 LED 7 ĐOẠN:

Trang 3

2.SƠ ĐỒ KHỐI 19

21

22

23

23

24

28

28

28

28

Trang 4

LỜI NÓI ĐẦU

Việt Nam là một nước đang trên con đường phát triển và đang hoànhập vào sự phát triển của thế giới, tạo ra thay đổi về mặt kinh tế xãhội của nước ta Tạo cơ hội cho học sinh - sinh viên chúng em tiếpcận và nhắm bắt được nhiều thành tựu vĩ đại của thế giới, đặc biệt là

về các lĩnh vực khoa học kỹ thuật nói chung và ngành Điện Tử nóiriêng

Thế hệ trẻ chúng ta không tự mình phấn đấu học hỏi thì chúng ta sẽsớm lạc hậu và nhanh chống bị đẩy lùi Nhìn thấy được điều đótrường Học Viện Công Nghệ Bưu Chính Viễn Thông đã sớm chủtrương hình thức đào tạo sâu rộng từ thấp đến cao Dể tang chấtlượng học tập của sinh viên nhà trường nói chung và khoa Điện Tửnói riêng đã tổ chức cho sinh viên làm đồ án mon học nhằm tạo nềntảng vững chắc cho sinh viên khi ra trường, đáp ứng nhu cầu tuyểndụng việc làm Chính vì vậy chúng em đã chọn đề tài: “Mạch đếm xe

ra vào bãi xe dùng ngôn ngữ mô tả phần cứng Verilog”

Trang 5

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN:

TP HCM, ngày … tháng … năm 2018

Ký tên:

Trang 6

CHƯƠNG I: CƠ SỞ LÝ THUYẾT

1) GIỚI THIỆU NGÔN NGỮ VERILOG:

Verilog được phát minh bởi Getway Design Automation và được giớithiệu lần đầu tiên vào năm 1984 Năm 1989 được mua lại bởiCadence, sau đó Verilog được phát hành miễn phí Tổ chức OpenVerilog International (OVI) đã được thành lập nhằm kiểm soát cácđặc tả ngôn ngữ Năm 1995, OVI Verilog đã được thông qua bởi IEEEnhư là một chuẩn mới của hiệp hội Năm 2001, IEEE đã giới thiệuphiên bản mới của Verilog và hiện tại đang là phiên bản được sửdụng rộng rãi nhất - Verilog HDL 2001 Năm 2005, SystemVerilogđược giới thiệu như là một sự mở rộng của Verilog với các kỹ thuậtkiểm tra hướng đối tượng Năm 2009, IEEE kết hợp chuẩn Verilog vớiSystemVerilog thành một chuẩn duy nhất: IEEE 1800-2009 Và hiệntại, chuẩn mới nhất là: 1800-2012 - IEEE Standard forSystemVerilog Unified Hardware Design, Specification, andVerification Language

Verilog là ngôn ngữ để miêu tả phần cứng (Hardware DescriptionLanguage) được xây dựng nhằm thiết kế các hệ thống số, mạch tíchhợp Verilog được định nghĩa ra để biểu diễn những phần tử AND, OR,XOR, NOT, D-Filplop, mạch encode, decode, xung clock đồng bộ Lậptrình bằng verilog chính là việc tổ hợp lại các phần tử trên đây theo 1trật tự nhất định Thông qua các tool synthesis sẽ đưa về lại cácmạch AND, OR, XOR,NOT, D-Filplop như trên

Các thuật ngữ cơ bản của Verilog:

Implement: Là quá trình bạn coding và thực hiện chỉnh sửa codethông qua simulation

Simualation: Là quá trình kiểm tra 1 design rtl có thỏa theo yêu cầuban đầu hay không Việc này được thực hiện bằng cách bạn dùngcode tạo ra các trường hợp giả lập để xem thử design của bạn cómatch với yêu cầu ban đầu hay không

Synchthesis: Là quá trình chuyển đổi từ code của bạn sang ngôn ngữphần cứng Việc này thực hiện thông qua các tool kèm theo của nhà

Trang 7

FPGA: Field-programmable gate array (FPGA) là một loại mạch tíchhợp cỡ lớn dùng cấu trúc mảng phần tử logic mà người dùng có thểlập trình được (Chữ field ở đây muốn chỉ đến khả năng tái lập trình

"bên ngoài" của người sử dụng, không phụ thuộc vào dây chuyềnsản xuất phức tạp của nhà máy bán dẫn) Vi mạch FPGA được cấuthành từ các bộ phận: Các khối logic cơ bản lập trình được (logicblock) Hệ thống mạch liên kết lập trình được Khối vào/ra (IO Pads).Phần tử thiết kế sẵn khác như DSP slice, RAM, ROM, nhân vi xửlý (Theo wiki)

ASIC: Viết tắt của application-specific integrated circuit trong tiếngAnh, là một thuật ngữ chỉ các vi mạch tích hợp chuyên dụng trongđiện tử học ASIC là một vi mạch IC được thiết kế dành cho một ứngdụng cụ thể ASIC ngày nay được ứng dụng hầu như khắp mọi nơi, ví

dụ như vi xử lý của điện thoại di động, vi xử lý trong các máy móc tựđộng, các phương tiện truyền thông, xe cộ, tàu vũ trụ, các hệ thống

xử lý, các dây chuyền công nghiệp, v.v (Theo wiki) Viết thì dài dòngvậy bạn hiểu nôm na FPGA/ASIC là các con chip làm ra để có thểload được code của bạn lên và chạy Tùy theo project, nhu cầu, công

ty mà họ sẽ xài FPGA hay ASIC Mỗi cái có ưu nhược điểm riêng

Image : Là file có được sau quá trình synthesis, mã hóa từ code củabạn

Onboard : Sau khi syhthesis các bạn sẽ load image trên lên 1 boardmạch (là 1 embedded system chứa FPGA/AISC, power, SFP ) vàcheck thử trên board để xem kết quả có như mình mong muốn haykhông

2) GIỚI THIỆU KIT XILINX CPLD VÀ HƯỚNG DẪN CÁCH NẠP CODE VÀO KIT XILINX CPLD:

Trang 8

a) GIỚI THIỆU KIT XILINX CPLD:

CPLD là thiết bị logic lập trình phức hợp có mật độ logic lập trình caohơn so với các PLD đơn giản như PLA và PAL CPLD bao gồm nhiềumạch logic, mỗi mạch có thể coi là một SPLD Trong một mạch đơnSPLD chỉ thực hiện các chức năng logic đơn giản Các chức nănglogic phức tạp hơn cần số lượng khối nhiều hơn, sử dụng ma trận liênkết chung giữa các khối để tạo kết nối CPLD thường dùng để điềukhiển ghép cổng phức hợp ở tốc độ rất cao

Kiến trúc cơ bản của CPLD:

Trang 9

CPLD có kiến trúc đồng nhất gồm nhiều khối chức năng gọi là

“Function Block” được kết nối với nhau thông qua một ma trận kếtnối trung tâm gọi là “Interconnect Array” Mỗi khối Function Blockgồm có một khối logicgồm nhiều hạng tích AND và OR sắp xếp giốngPLA hoặc PAL, cho phép thực hiện các hàm logic tổ hợp- và nhiềukhối Macrocell có chứa tài nguyên và các Trigơ cho phép xây dựngcác thanh ghi và mạch tuần tự Phần lõi bên trong của CPLD được nối

ra bên ngoài thong qua các khối vào ra I/O cho phép thiết lập chứcnăng cho các chân của IC có chức năng vào hoặc ra hoặc vừa vàovừa ra Ngoài ra còn có thể thiết lập các chân I/O làm việc ở các mứclogic khác nhau, có điện trở pull-up, có điện trở pull-down,

Kiến trúc đông nhất của CPLD:

Cấu hình CPLD được lưu lại khi mất điện và không đổi trong quá trìnhhoạt

động Trong thực tế có nhiều loại CPLD khác nhau, của các hãng

động,…

Quy trình thiết kế cho CPLD: Quá trính thiết kế cho CPLD được

thực hiện trên công cụ phần mềm ISE, bao gồm các bước như sau: Bước 1: Nhập thiết kế (Design Entry)

Đây là bước đầu tiên và quan trọng nhất của quá trình thiết kế choCPLD Các công cụ thiết kế cho phép nhập thiết kế theo các cách

Trang 10

- Nhập thiết kế sử dụng ngôn ngữ mô tả phần cứng HDL (VHDL,Verilog, ABEL,…) Người thiết kế có thể sử dụng chương trình soạnthảo để thực hiện việc mô tả toàn bộ bản thiết kế của mình dướidạng HDL mà công cụ thiết kế có thể tổng hợp được.

- Nhập thiết kế theo sơ đồ nguyên lý schematic Người thiết kế sửdụng các module có sẵn trong thư viện schematic để kết nối chúngvới nhau tạo thành bản thiết kế theo yêu cầu Các này có thể thựchiện thiết kế nhanh nhưng sẽ rất khó khăn và không tối ưu tàinguyên của CPLD khi thiết kế phức tạp, không sử dụng được cáccông cụ thiết kế của hãng khác

- Nhập thiết kế dưới dạng sơ đồ: điển hình là đồ hình trạng thái, sau

đó chúng được chuyển đổi sang HDL

Bước 2: Kiểm tra mô phỏng thiết kế

Bước 3: Tổng hợp thiết kế (Design Synthesis)

Bước 4: Thực hiện thiết kế ( Design Implementaion)

Ở bước này sử dụng file netlist và file constrants để mô tả nguyêntắc thiết kế, gán các vị trí vào/ra trên chip, các ràng buộc tốc độ, thờigian, tần số,… Bước này bao gồm các bước: Biên dịch (Translate),Phân bố bản thiết kế vào chip (Map), Định vị và định tuyến kết nối(Place and Route)

b) HƯỚNG DẪN NẠP CODE VÀO KIT XILINX CPLD:

Để nạp chương trình CPLD cho kit Kit thực hành CPLD X Board, ta sửdụng phần mềm Digilent Adapt thông qua card USB

Trang 11

Bước 1: Chạy Adept.msi cho setup

Bước 2: Chọn đường dẫn

Trang 12

Bước 3: Đọc nội quy, chọn Đồng ý, chọn Next.

Bước 4: Kết nối máy PC với kit CPLD thông qua USB Digilent

Bước 5: Mở Start → Program→ Digilent →Adept

Trang 13

Bước 6: Chọn đường dẫn file thiết kế:

Chọn file tải chương trình jed

Bước 7: Chọn Program

Trang 14

CHƯƠNG II: THIẾT KẾ

1. GIỚI THIỆU CÁC LINH KIỆN CÓ TRONG MẠCH:

1.1 ĐỘNG CƠ ĐIỆN SERVO:

Servo là một dạng động cơ điện đặc biệt Không giống như động cơthông thường cứ cắm điện vào là quay liên tục, servo chỉ quay khiđược điều khiển (bằng xung PPM) với góc quay nằm trong khoảngbất kì từ 0o - 180o Mỗi loại servo có kích thước, khối lượng và cấutạo khác nhau Có loại thì nặng chỉ 9g (chủ yếu dùng trên máy bay

mô mình), có loại thì sở hữu một momen lực bá đạo (vài chụcNewton/m), hoặc có loại thì khỏe và nhông sắc chắc chắn,

Động cơ servo được thiết kế những hệ thống hồi tiếp vòng kín Tínhiệu ra của động cơ được nối với một mạch điều khiển Khi động cơquay, vận tốc và vị trí sẽ được hồi tiếp về mạch điều khiển này Nếu

có bầt kỳ lý do nào ngăn cản chuyển động quay của động cơ, cơ cấuhồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt được vị trí mong muốn.Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt được điểmchính xác Các động cơ servo điều khiển bằng liên lạc vô tuyến đượcgọi là động cơ servo RC (radio-controlled) Trong thực tế, bản thânđộng cơ servo không phải được điều khiển bằng vô tuyến, nó chỉ nốivới máy thu vô tuyến trên máy bay hay xe hơi Động cơ servo nhậntín hiệu từ máy thu này

1.2 ARDUINO:

Arduino là một board

Trang 15

AVR Atmel 8bit, hoặc ARM Atmel 32-bit Những Model hiện tại đượctrang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chânI/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau.

Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện

bổ sung giúp dễ dàng lập trình và có thể mở rộng với các mạch khác.Một khía cạnh quan trọng của Arduino là các kết nối tiêu chuẩn của

nó, cho phép người dùng kết nối với CPU của board với các modulethêm vào có thể dễ dàng chuyển đổi, được gọi là shield Vài shieldtruyền thông với board Arduino trực tiếp thông qua các chân kháchnhau, nhưng nhiều shield được định địa chỉ thông qua serial bus I²C-nhiều shield có thể được xếp chồng và sử dụng dưới dạng song song.Arduino chính thức thường sử dụng các dòng chip megaAVR, đặc biệt

là ATmega8, ATmega168, ATmega328, ATmega1280, vàATmega2560 Một vài các bộ vi xử lý khác cũng được sử dụng bởi cácmạch Aquino tương thích Hầu hết các mạch gồm một bộ điều chỉnhtuyến tính 5V và một thạch anh dao động 16 MHz (hoặc bộ cộnghưởng ceramic trong một vài biến thể), mặc dù một vài thiết kế nhưLilyPad chạy tại 8 MHz và bỏ qua bộ điều chỉnh điện áp onboard dohạn chế về kích cỡ thiết bị Một vi điều khiển Arduino cũng có thểđược lập trình sẵn với một boot loader cho phép đơn giản là uploadchương trình vào bộ nhớ flash on-chip, so với các thiết bị khácthường phải cần một bộ nạp bên ngoài Điều này giúp cho việc sửdụng Arduino được trực tiếp hơn bằng cách cho phép sử dụng 1 máytính gốc như là một bộ nạp chương trình

Theo nguyên tắc, khi sử dụng ngăn xếp phần mềm Arduino, tất cảcác board được lập trình thôngqua một kết nối RS-232, nhưng cáchthức thực hiện lại tùy thuộc vào đời phần cứng Các board SerialArduino có chứa một mạch chuyển đổi giữa RS232 sang TTL Cácboard Arduino hiện tại được lập trình thông qua cổng USB, thực hiệnthông qua chip chuyển đổi USB-to-serial như là FTDI FT232 Vài biếnthể, như Arduino Mini và Boarduino không chính thức, sử dụng mộtboard adapter hoặc cáp nối USB-to-serial có thể tháo rờiđược, Bluetooth hoặc các phương thức khác (Khi sử dụng một công

cụ lập trình vi điều khiển truyền thống thay vì ArduinoIDE, công cụlập trình AVR ISP tiêu chuẩn sẽ được sử dụng.)

Board Arduino sẽ đưa ra hầu hết các chân I/O của vi điều khiển để sửdụng cho những mạch ngoài Diecimila, Duemilanove, và bây giờ làUno đưa ra 14 chân I/O kỹ thuật số, 6 trong số đó có thể tạo xungPWM (điều chế độ rộng xung) và 6 chân input analog, có thể được sửdụng như là 6 chân I/O số Những chân này được thiết kế nằm phíatrên mặt board, thông qua các header cái 0.10-inch (2.5 mm) Nhiềushield ứng dụng plug-in cũng được thương mại hóa Các boardArduino Nano, và Arduino-compatible Bare Bones Board vàBoarduino có thể cung cấp các chân header đực ở mặt trên của

Trang 16

Có nhiều biến thể như Arduino-compatible và Arduino-derived Mộtvài trong số đó có chức năng tương đương với Arduino và có thể sửdụng để thay thế qua lại Nhiều mở rộng cho Arduino được thực thiệnbằng cách thêm vào các driver đầu ra, thường sử dụng trong cáctrường học để đơn giản hóa các cấu trúc của các 'con rệp' và cácrobot nhỏ Những board khác thường tương đương về điện nhưng cóthay đổi về hình dạng-đôi khi còn duy trì độ tương thích với cácshield, đôi khi không Vài biến thể sử dụng bộ vi xử lý hoàn toàn khácbiệt, với các mức độ tương thích khác nhau.

1.3 LED THU PHÁT HỒNG NGOẠI:

Giải thích nguyên lý :khi led thu không nhận được tín hiệu từ led phát,điện trở của led thu rất lớn ,V2>V3 => lối ra điện áp bằng 0 ,khi ledthu nhân được tín hiệu từ led phát ,điện trở của ledthu giảm xuốngmạnh (sự giảm đó phụ thuộc vào cường độ led phát ),khi đóV2<V3=>lối ra điện áp bằng 5v

Trang 17

Khi gặp bức tường màu trắng tín hiệu hồng ngoại sẽ phản xạ ngượclại ,còn trường hợp gặp vật màu tối cũng như không gặp vật cản sẽkhông có tin hiệu phản xạ lại led thu Mạch này hay sử dụng nhất,khoảng thu có thể lên tới 30cm Tuy nhiên trong một số trường hợpmạch trên hay bị nhiễu ,do led hồng ngoại nhạy cảm với ánh sáng.Tín hiệu nhiễu có thể là ánh sáng đèn điện (tần số 50hz ),ánh sángmặt trời Để giải quyết nhiễu do ánh sáng đèn điện ta sử dụngmach sau:

Tín hiệu nhiễu tần số thấp bị lọc qua mạch lọc thông cao gôm tụ C2

và trở R4 Tín hiệu ở đầuvào led thu là xung có tần số khoản 10k ,tín hiệu ra ta thu được cũng là xung có tần số như tínhiệu vào,vì vậy muốn đưa tín hiệu đó vào vi điều khiển ta phải đưa qua bộ lọcđỉnh Còn nhiễu do ánh sáng mặt trời các bạn có thể mắc song songmột led hồng ngoại với biến trởVR1 ,để bù trừ sự sụp áp do anh sángmặt trời lên led thu Q1 Hoặc có một cách đơn giản hơn làta lấy ốngnhựa màu đen để che led thu lại ,cách này rất hiệu quả và mạch của

Trang 18

1k-ta lúc đó cũng gọn gàng hơn Theo tôi 1k-ta lên dùng cách này vì mạchvừa gọn gàng, đỡ tốn năng lượng, hệ số tin cậy lại cao hơn là dùngnhiều linh kiện điện tử.

1.4 IC LM358

Thông số kỹ thuật:

Model: 14 chân, xuyên lỗ

Điện áp: 3-32V với nguồn đơn, 1.5-16V với nguồn đôi

Dải nhiệt độ hoạt động: 0 ~ 70oC

Độ lợi khuếch đại DC 100dB

Điện áp ngõ ra: 0V đến VCC(+)-1.5V

IC LM358 là bộ khuếch đại thuật toán kép công suất thấp, bộ khuếchđại này có ưu điểm hơn so với bộ khuếch đại thuật toán chuẩn trongcác ứng dụng dùng nguồn đơn

IC LM358 có thể hoạt động ở nguồn điện áp thấp 3V hoặc cao lên tới

32V LM358 có công suất cực máng thấp, tuy nhiên có độ lợi cao

100dB Cấu tạo bên trong của IC LM358 gồm 2 bộ khuếch đại thuậttoán, tương thích với nhiều loại mạch logic khác nhau

Ngày đăng: 23/11/2018, 17:13

TỪ KHÓA LIÊN QUAN

w