Thiết kế trạm cân xe

LỜI MỞ ĐẦU Cân xe cũng như việc cân những khối lượng lớn là một nhu cầu cần thiết cho các nhà máy sản xuất muốn biết khối lượng hàng hoá, sản phẩm hay nguyên vật liệu, và cả cho những lĩnh vực khác như bến cảng, trạm cân xe phát hiện quá tải của cảnh sát giao thông . Tuy đã được sử dụng rộng rãi ở Việt Nam nhưng hầu hết các hệ thống cân xe đều lắp ráp từ các thiết bị có sẵn từ nước ngoài như loadcell, bộ hiển thị (đầu cân) . Phần được chế tạo ở đây có thể là nền cầu cân, hộp nối loadcell ( Junction Box) và viết chương trình quản lý trạm cân . Đề tài “ Thiết kế trạm cân xe” này bao gồm việc dùng vi xử lý đọc A/D của tín hiệu sau khi đã khuếch đại từ loadcell, hiển thị kết quả cân, truyền dữ liệu sang máy tính, thực hiện một số chức năng như đầu cân thực tế, viết chương trình quản lý trạm cân và cả việc thực hiện một mô hình cân xe tải. Ngoài ra còn thực hiện Card A/D gắn vào rãnh cắm máy tính ứng dụng trong hệ thống cân sử dụng cho khoảng cách gần và tính tiền tự động bằng chương trình máy tính. Đây chỉ là phần ứng dụng các lý thuyết đã học để giải quyết một vấn đề tương đối hoàn chỉnh có tron g thực tế. MỤC LỤC Trang Lời mở đầu 2 Phần một : Tổng quan về hệ thống cân điện tử . 4 Chương I : Hệ thống cân sử dụng loadcell và ứng dụng . 4 Chương II: Sơ lược các phương pháp và cảm biến được 6 dùng trong việc đo khối lượng. I) Các phương pháp đo khối lượng. 6 II) Giới thiệu về loadcell. 8 Chương III: Hệ thống cân xe. 17 I) Cầu cân. 17 II) Cách bố trí loadcell và trạm nối dây. 18 III) Thiết bị chỉ thị khối lượng. 22 IV) Quản lý trạm cân dùng máy tính. 23 Chương IV: Giới thiệu một bộ hiển thị khối lượng cụ thể . và cách cân chỉnh cho đầu cân thực tế. 24 Phần hai: Lý thuyết ứng dụng khi thiết kế mạch. 28 I) Phương pháp biến đổi AD. 28 II) Bộ khuếch đại tín hiệu. 30 III) Max 232 và họ IC biến đổi từ TTL  RS232 33 IV) Cách thức giao tiếp với máy tính có sử dụng trong luận văn. 36 V) Ngôn ngữ sử dụng trong giao tiếp máy tính Phần ba: Phần thiết kế 42 Chương V) Dùng vi xử lý thực hiện công việc của đầu cân thực tế. I) Giới thiệu AT 89C51 và cách kết nối đã sử dụng trong mạch. 42 II) Sử dụng bộ biến đổi AD 12 bit ICL7109 trong việc thiết kế 47 IV) Giải thích chương trình viết cho vi xử lý Và lưu đồ giải thuật 77 V) Chương trình cân viết cho máy tính. 88 Phần bốn Phát triển luận văn Chương VII Kết quả thi công và hướng phát triển của đề tài 90 Phần phụ lục I) Giới thiệu các IC sử dụng trong mạch. II) Tài liệu tham khảo.

pdf95 trang | Chia sẻ: lvcdongnoi | Lượt xem: 4458 | Lượt tải: 5download
Bạn đang xem trước 20 trang tài liệu Thiết kế trạm cân xe, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
mức cao thì ADC ở chế độ tắt tay. Trong thiết kế, chân này được nối mass để giao tiếp song song với máy tính hay vi xử lý. 22) OSC IN : Ngõ vào bộ dao động. 23)OSC OUT : Ngõ ra của bộ dao dộng. Hai chân này đã được nối đến bộ dao động thạch anh 3,58MHz. 24)OSC SEL : Dùng để lựa chọn cấu hình cho bộ dao động. Nếu ngõ vào này ở mức cao, dao động RC được lựa chọn, xung clock sẽ cùng pha và chu kỳ nhiệm vụ như BUF OSC OUT. Nếu ngõ vào ở mức độ thấp, bộ dao động thạch anh nối ở OSC IN, OSC OUT sẽ được chọn lựa. Khi đó tần số xung clock sẽ là 1/58 tần số của BUF OSC OUT. Do trong mạch sử dụng dao động thạch anh nên chân này được nối mass. 25)BUF OSC OUT:Ngõ ra bộ đệm dao động.Trong mạch không sử dụng nên chân này được để trống . 26)RUN/HOLD : Nếu ngõ vào này ở mức cao, việc chuyển đổi liên tục được thực hiện sau mỗi 8192 xung Clock. Nếu ở mức thấp việc chuyển đổi sẽ dừng trong chu Thieát keá traïm caân xe Trang 58 kỳ Auto Zero 7 xung Clock trước khi quá trình tích phân kế tiếp xảy ra.Ở đây chân này được nối vào một Port bit để khi cần điều khiển việc đọc AD thì chỉ việc xuất ra mức cao ở chân này.Thực hiện như vậy thì AD chỉ biến đổi được 7,5 lần trong một giây ,tuy nhiên trong hệ thống cân thì tốc độ biến đổi như thế là có thể chấp nhận được. 27)SEND:Ngõ vào, được dùng trong chế độ bắt tay để chỉ khả năng của thiết bị bên ngoài nhận dữ liệu.Ở đây do không sử dụng chế độ này nên được nối lên +5 Volt. 28)V- :Nguồn âm cho ICL7109, thường là –5V so với mass. 29)REF OUT: Ngõ ra điện áp tham khảo, thường là nhỏ hơn so với V+ là 2,8 Volt.Ở đây không sử dụng chân này mà dùng nguồn điện áp tham khảo là từ bên ngoài. 30)BUFFER: Ngõ ra bộ khuếch đại đệm.Trong thiết kế, chân này để trống. 31)AUTO _ZERO: Được nối đến tụ CAZ 32)INTEGRATOR: Ngõ ra bộ tích phân, được nối đến tụ CINT. 33)COMMON: Chân chung của tín hiệu tương tự, chân này cũng được nối mass. 34)INPUT LO: Cực âm của điện áp vào vi sai 35)INPUT HI: Cực dương của điện áp vào vi sai. Cực âm và dương của tín hiệu vào được nối đến các chân INPUT LO và INPUT HI tương ứng. 36)REF IN+: Ngõ vào dương của điện áp tham khảo. 37)REF CAP+: Cực dương của tụ tham khảo được nối đến chân này. 38)REF CAP-: Cực âm của tụ tham khảo được nối vào đây. 39)REF IN- : Ngõ vào âm của điện áp tham khảo.Cực âm của điện áp tham khảo được nối đến đây. 40)V+: Nguồn cung cấp dương cho ICL 7109 thường là +5V so với mass. b) Tóm tắt những thông số thiết kế: + Tần số dao động fOSC =3,58MHz (dùng dao động thạch anh). Chu kỳ dao động tOX = = 0,2793(s) 1 3,58MHz Thieát keá traïm caân xe Trang 59  Tần số xung Clock trong qúa trình lấy tích phân : f clock= = = 61,724,14(Hz) suy ra t clock = = 16,2(s).  Chu kỳ lấy tích phân : tINT = 2048 x t clock = 2048 x 16,2(s) = 33,1776(ms).  Điện áp analog ngõ vào toàn tầm : VINFS = 2V. (điển hình); ở đây dùng áp vào toàn tầm là 4,096 Volt.  Điện trở của bộ tích phân : RINT = = = 204,8(K) với IINT=20(A). Trong mạch sử dụng điện trở 220K.  Tụ điện của bộ tích phân : CINT = = 0,33(F) nếu VINT =2V.  Giá trị AD đọc được là : 2048 . .  Chu kỳ chuyển đổi : tcyc = tclock x 8192 = 33,1776(ms) x 8192 = 133ms Số lần chuyển đổi trong 1 giây là : = 7,52 lần. fosc 58 3,58MHz 58 1 f clock cvvccclo VINFS IINT 4,096(Volt) 20A tINT . IINT VINT VIN VRFF 1000 133 Thieát keá traïm caân xe Trang 60 c) Quá trình biến đổi AD : Một chu kỳ biến đổi AD của ILC 7109 được chia làm 3 pha : Autozero : Trong giai đoạn này có ba sự kiện xảy ra : Đầu tiên các ngõ vào INLO và INHI không được nối đến tín hiệu bên ngoài mà nối tắt đến chân COMMON. Kế đến tụ điện tham khảo được nạp đến điện áp tham khảo. Cuối cùng dòng hồi tiếp được nối vòng qua hệ thống để nạp tụ CAZ nhằm bù với điện áp lệch trong bộ khuyếch đại đệm, bộ tích phân và bộ so sánh. nhiễu vốn có của hệ thống sẽ quyết định độ chính xác của pha này, tuy nhiên độ lệch ngõ vào luôn nhỏ hơn 10V. Signal integrate : Trong giai đoạn lấy tích phân tín hiệu này các ngõ vào INLO và INHI được nối đế tín hiệu bên ngoài cần biến đổi, vòng hồi tiếp được hở ra và không còn nối tắt bên trong. Khi đó bộ biến đổi sẽ lấy tích phân điện áp vi sai giữa INHI và INLO trong một khoảng thời gian cố định là 2048 xung clock. Điện áp vi sai này phải nằm trong tầm ngõ vào. Ở cuối pha này cực tín của tín hiệu lấy tích phân được xác định. De – Integrate : Pha cuối cùng là lấy lại tích phân hay lấy tích phân điện áp chuẩn. INLO được nối đến COMMON và INHI được nối đến tụ tham khảo đã nạp điện áp tham khảo trước đó.Mạch điện trong chip đảm bảo tụ điện được nối đến đúng cực tính sao cho ngõ ra của bộ tích phân trả về mức Zero (đã được thiết lập trong phase Auto – Zero) với một độ dốc cố định. Thời gian cần thiết để ngõ ra này trở về zero thì bằng và tỷ lệ với tín hiệu điện áp vào. Giản đồ thời gian chuyển đổi( chân RUN/HOLD ở mức cao) như sau: Thieát keá traïm caân xe Trang 61 Tổng cộng thời gian chuyển đổi là 8192x tclock ( nếu RUN/HOLD luôn ở mức cao). Lựa chọn giá trị cho các linh kiện và điện áp : 1) Điện trở tích phân - RINT : Điện trở tích phân phải có giá trị đủ nhỏ để tránh sự rò rỉ không mong muốn nhưng cũng phải đủ lớn để giữ cho dòng ngõ ra còn trong vùng tuyến tính. Giá trị tối ưu cho 4,096V toàn phần là 200K và 20K nếu toàn tầm là 409,6mV. Với giá trị điện áp toàn tầm khác thì điện trở tích phân được tính theo công thức sau : RINT = (K) 2) Tụ tích phân - CINT : Tụ điện tích phân được chọn sao cho biên độ áp ra cực đại của bộ tích phân không bị bão hòa. Với 7,5 lần biến đổi trong 1 giây( tần số xung clock là 61,72KHz) thì tụ CINT và CAZ nên chọn là 0,15F và 0,33F tương ứng. Nếu sử dụng tần số xung clock khác thì giá trị tụ CINT được chọn như sau: CINT = Điện áp toàn tầm 6V 20A (2048 x chu kỳ xung clock) x 20A Biên độ( đỉnh – đỉnh) áp ra bộ tíchphân Thieát keá traïm caân xe Trang 62 3) Tụ Auto – Zero CAZ : Tụ Auto – Zero có ảnh hưởng đến nhiễu của hệ thống. Kích cỡ càng nhỏ và điện dung càng lớn thì sẽ làm giảm nhiễu của toàn bộ hệ thống. nếu điện áp toàn tầm là 409,6mV thì nhiễu rất quan trọng khi đó tụ CAZ được chọn gấp 2 lần tụ CINT là tối ưu. Nếu điện áp toàn tầm là 4,096V thì sự hồi phục quan trọng hơn nhiễu, khi đó chọn tụ CAZ bằng một nửa so với tụ CINT. 4)Tụ tham khảo : Giá trị là 1F cho hầu hết các ứng dụng. 5) Điện áp tham khảo : Tín hiệu analog vào VIN = 2 x VRef sẽ cho ngõ ra 1 giá trị đầy thang là 4096. Thường với điện áp chuẩn là 2,048 Volt nên dùng cho điện áp toàn tầm là 4,096 Volt và 204,8mV nếu điện áp toàn tầm là 0,4096Volt. Tuy nhiên trong nhiều ứng dụng sử dụng AD để đọc giá trị từ cảm biến sẽ có một hệ số tỷ lệ khác ngoài hệ số giữa điện áp đo và giá trị số biến đổi được. Ví dụ trong hệ thống cân người thiết kế muốn có điền áp toàn tầm khi đọc vào từ cảm biến là 0,682Volt. Thay vì lái ngõ vào xuống còn 409,6mV, ngõ vào có thể đo được trực tiếp và khi đó điện áp chuẩn phải dùng là 0,341Volt. Giá trị điện trở và tụ tích phân được chọn là 33K và 0,15pF. Điều này sẽ tránh thực hiện một mạch chia ở ngõ vào. Một ứng dụng khác của hệ thống này là việc đọc điểm zero cho non-zero input. Ví dụ độ trôi nhiệt độ hay đọc trọng lượng bì được trừ ra khi cân. Độ trôi điện áp đó có thể được đưa vào bằng cách nối điện áp ra của cảm biến giữa common và analog high và điện áp offset giữa common và analog low, chú ý kỹ cực tính. Tuy nhiên trong hệ thống xử lý sử dụng ICL 7109, thực hiện chia tỷ lệ hay trừ bì sử dụng phần mềm sẽ hiệu quả hơn. Sự ổn định của nguồn cung cấp điện áp tham khảo là một phần quan trọng trong độ chính xác của toàn bộ hệ thống biến đổi. Độ phân giải của ICL 7109 là 1/4096 hay 244ppm. Vì vậy nếu nguồn tham khảo có hệ số nhiệt là 80ppm/C, sự sai lệch 3 độ C sẽ gây ra sai số1 bit. Vì vậy nguồn chuẩn cần phải không bị ảnh hưởng bởi nhiệt độ môi trường xung quanh. Ngoài ra ICL 7109 còn cung cấp chân REFERENCE OUTPUT(chân 29), có thể dùng với điện trở để phân chia điện áp cho thích hợp. Khi đó REF OUT(chân 29), được nối lên REF – (chân 39) và REF + được nối cầu phân áp giữa REF OUT và V+. Chú ý rằng chân 29 và chân 39 được nối chung với nhau, có thể chân 39 và 40 bị Thieát keá traïm caân xe Trang 63 ngắn mạch ngẫu nhiên, khi đó dòng điện từ nguồn tham khảo có thể làm phá hỏng thiết bị. Điều này có thể tránh bằng mắc thêm một điện trở mắc nối tiếp vào chân 39. Các thời gian cần thiết trong chế độ giao tiếp trực tiếp: Giản đồ thời gian khi sử dụng ICL7109 trong chế độ trực tiếp : Có nhiều cách kết nối các đường tín hiệu CE/LOAD, HBEN, LBEN để điều khiển khác nhau, ngoài ra có thể kết nối nhiều AD ICL 7109 với cùng một bộ xử lý để Mô tả Ký hiệu Min Điển hình Max Đơn vị Độ rộng byte tBEA 350 220  ns Thời gian truy cập dữ liệu từ khi Byte Enable tDAB  210 350 ns Thời gian giữ data từ khi Byte Enable tDHB  150 300 ns Độ rộng tín hiệu chọn Chip tCEA 400 260  ns Thời gian truy cập dữ liệu từ khi Chip Enable tDAC  260 400 ns Thời gian giữ dữ liệu từ khi Chip Enable tDHC  240 400 ns Thieát keá traïm caân xe Trang 64 chuyển đổi ở nhiều kênh riêng biệt. Các cách kết nối và thông tin chi tiết hơn có thể tìm thấy ở CD ROM Harris – Semiconductor hoặc các website www. Harris. com hay http: // maxim – ic. com. III) Thiết kế các khối chức năng cho mạch vi xử lý: Sơ đồ khối của hệ thống cân dùng vi xử lý như sau : • Khối xử lý trung tâm là vi điều khiển AT89C51. • Khối giao tiếp qua cổng COM máy tính theo chuẩn RS-232. • Khối hiển thị : hiển thị số liệu cân được lên Led 7 đoạn. • Khối nút nhấn : thực hiện một số chức năng của đầu cân thực tế. • Máy tính làm nhiệm vụ đọc giá trị cân được từ vi xử lý, lưu trữ số liệu và có thể in ra máy in phiếu cân ,bảng báo cáo tuỳ yêu cầu cụ thể. • Bộ nguồn : cung cấp nguồn nuôi các IC, nguồn chuẩn cho AD, nguồn ổn định cho loadcell. Bộ nguồn và mạch khuếch đại được trình bày ở phần sau. Phần này chỉ giải thích những khối liên quan đến mạch vi xử lý. 1) Khối xử lý trung tâm : Đây là khối đóng vai trò trung tâm, cung cấp việc điều khiển theo một chương trình đã nạp cho AT89C51. Cách kết nối được vẽ ở trang sau. Sở dĩ ở đây sử dụng bộ dao động thạch anh 11,059MHz là để tạo tốc độ baud chính xác cung cấp cho việc truyền dữ liệu nối tiếp. Bộ dao động gồm thạch anh X1 Hiển thị số liệu cân Xử lý trung tâm Biến đổi AD Giao tiếp qua máy tính Máy tính Máy in Cảm biến và khuếch đại Khối nút nhấn Thieát keá traïm caân xe Trang 65 0.42x100 26 và 2 tụ C1, C2. Xung Clock cho các hoạt động bên trong AT89C51 có tần số bằng 1/12 tần số của thạch anh. Nếu sử dụng thạch anh 12MHz thì tần số xung Clock là 1MHz tương ứng với một chu kỳ máy là 1s. Việc này sẽ tạo nên thời gian thực chính xác, tuy nhiên khi đó tốc độ baud thực sự được tạo ra sẽ có sai số so với giá trị mong muốn. Để tạo được baudrate thay đổi được người ta sử dụng timer, thường là timer1 và tốc độ tràn của nó sẽ tạo ra baudrate. Công thức để xác định tốc độ là : Baurate = tốc độ tràn Timer1 : 32 Nếu sử dụng dao động thạch anh 12MHz thì nếu muốn tốc độ baud là 1200 ta phải tính như sau : 1200 = tốc độ tràn Timer1 : 32 Suy ra tốc độ tràn Timer1 là 1200 x 32 = 38,4 KHz Thạch anh 12MHz sẽ cho tần số xung Clock là 1MHz = 1000 KHz. Để có tần số tràn là 38,4KHz thì Timer1 se tràn sau 1000 : 38,4  26,042 xung Clock. Do đó cần nạp giá trị 26 vào Timer và như vậy đã gây ra sai số là = 0,16%. Do đó việc sử dụng dao động thạch anh 1,059MHz là nhằm để hạn chế sai số này theo bảng so sánh như sau : Tốc độ baud Tần số thạch anh SMOD Giá trị nạp (thông thường vào TH1) Tốc độ baud thật sự Sai số 9600 12MHz 1 -7 (F9H) 8923 7% 2400 12 MHz 0 -13 (F3H) 2404 0,16% 1200 12 MHz 0 -26 (E6H) 1202 0,16% 19200 11.059 MHz 1 -3 (FDH) 19200 0 9600 11.059 MHz 0 (FDH) 9600 0 2400 11.059 MHz 0 -12 (F4H) 2400 0 1200 11.059 MHz 0 -24 (E8H) 1200 0 Thieát keá traïm caân xe Trang 66 CE/LOAD Chương trình điều khiển được viết cho vi xử lý bao gồm việc đọc dữ liệu từ AD, phát hiện phím nhấn, xử lý dữ liệu xuất ra Led 7 đoạn hoặc Led đơn đồng thời truyền số liệu cân được về máy tính qua Port nối tiếp. Việc đọc AD trước tiên sẽ là kích chân RUN/HOLD được nối ở P1.4 lên mức 1 bằng lệnh SETB P1.4 Sau đó vi xử lý sẽ chờ nhận tín hiệu STATUS từ AD, chân này được nối vào P3.2 của AT8951, chừng nào chân này bằng 0 thì khi đó mới xuất mức 0 ra chân P1.5 (được nối vào LBEN của AD ICL7109) để cho phép truy xuất byte thấp, vì chân  của AD đã được nối mass trùng với mức tích cực của nó. Việc đọc dữ liệu byte thấp của biến đổi AD được thông qua Port 0 của AT8951. Kế đến là xuất mức 0 ra P1.6 sẽ làm chân HBEN = 0. Các bit B9B12 mới được phép đọc về thông qua Port3 vào thanh ghi A bằng lệnh MOV A, P3. Để đọc được giá trị chính xác từ B9B12 ta phải che 4 bit cao bằng lệnh ANL A, #0FH. Việc xác định trạng thái của các nút nhấn dựa vào mức logic của các chân P3.3, P3.6, P3.7. Nếu không nhấn thì các chân là ở mức 1, nếu phím được nhấn các chân này sẽ nhận mức 0. +5V +5V+5V 30pF 30pF 8.2K 100 AT89C51 9 18 19 29 30 31 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 RST XTAL2 XTAL1 PSEN ALE/PROG EA/VPP P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7Q1 11.059MHz SW1 RESET /LBEN /HBEN B1 B2 B3 B4 B6 B5 B7 B8 B9 B10 B11 B12 STATUS RXD TXD A B C D E F G P3-4P3-3P3-5P3-6P3-7P1-7 R/H 10uF Thieát keá traïm caân xe Trang 67 Việc thiết kế các chức năng phức tạp khác đòi hỏi phải sử dụng bộ nhớ ngoài hay dùng nguồn nuôi cho bộ nhớ khi không cấp điện. Ở đây các nút nhấn chỉ thực hiện các chức năng đơn giản như “Zero”, ”Tare”, ”NetWeigh” mà thôi. Dữ liệu cần xuất ra Led là mã Led 7 đoạn do sử dụng giải mã bằng phần mềm theo phương pháp tra bảng . Ở đây không dùng giải mã cho dấu chấm thập phân mà phần này có thể lựa chọn trên phần cứng. Việc chọn Led để xuất ra thông qua IC giải mã 74LS138 các chân A, B, C của IC này được nối vào P1.7, P3.4, P3.5. Do đó khi cần xuất ra Led nào thì chỉ việc Set hay Clear các bit này cho phù hợp theo bảng chân trị của 74LS138. Truyền thông dữ liệu giữa vi xử lý và máy tính được thực hiện qua Port nối tiếp sử dụng trên 2 chân TXD và RXD. Phần cứng cung cấp luôn cho việc nhận dữ liệu vào vi xử lý. Tuy nhiên, không cần sử dụng chân RXD này vì chương trình chỉ cần truyền dữ liệu từ vi xử lý về máy tính mà không làm công việc ngược lại. Dữ liệu truyền về là mã ASCII của các ký tự đã hiển thị trên Led (chính là khối lượng cân được), do đó trong chương trình ngoài phần chuyển sang mã Led 7 đoạn còn có thêm chương trình con chuyển dữ liệu từ BCD sang mã ASCII, cũng sử dụng phương pháp tra bảng. Việc truyền dữ liệu cũng bao gồm cả dấu chấm thập phân. Để việc truyền thông được thực hiện, ta cần phải khởi động cho Port nối tiếp bằng cách ghi các giá trị thích họp vào thanh ghi Serial Control SCON. Ở các đầu cân chuyên dụng, tốc độ baud có thể lựa chọn được. Việc thiết kế này không mấy khó khăn, tuy nhiên do không sử dụng thêm bộ nhớ mở rộng nên các đường I/O đã được sử dụng hết và không còn trống. Do đó, nếu muốn thay đổi tốc độ không phải chỉ gạt nút như đầu cân thực tế mà phải thay đổi chương trình và nạp lại cho AT89C51. Ở đây quy định sẵn tốc độ baud truyền là 9600bit per sec. Vì thế mode hoạt động cho cổng nối tiếp được lựa chọn là mode 1 : UART 8bit tốc độ baud thay đổi được. Thanh ghi SCON được ghi vào giá trị như sau : SCON : 01000010B mode 1 TI= 1 để cho phát ngay byte đầu tiên Ngoài ra thanh ghi TMOD cũng được khởi động giá trị để tạo tốc độ baud là 9600bit/sec. TMOD : 00100000B Thieát keá traïm caân xe Trang 68 chỉ sử dụng timer1 và mode hoạt động là mode 2 tự động nạp lại giá trị ban đầu Giá trị nạp vào Timer1 như đã tính ở phần trên là : MOV TH1, # -3 Sau khi đặt cấu hình xong, khi cần truyền dữ liệu sang máy tính, ta chỉ cần chờ cờ báo phát TI = 1, MOV giá trị cần phát ra Serial buffer. JNB TI, $ MOV SBUF, A CLR TI Máy tính cần có chương trình khởi động cổng nối tiếp với các thông số phù hợp với bên truyền này thì dữ liệu mới nhận được. Do vi xử lý sử dụng là loại 8 bit mà AD sử dụng lại là 12 bit do đó cần phải viết các chương trình thực hiện các phép toán trên số 16 bit và 8 bit, phục vụ cho việc đọa AD, tính toán và xuất Led … Trong chương trình viết cho vi xử lý AT89C51 có sử dụng chương trình con chia số 16 bit cho số 8 bit để đổi giá trị nhị phân 16 bit sang số BCD nhằm mục đích hiển thị Led 7 đoạn. Trang sau là giải thuật chương trình. Số bị chia 16 bit chứa trong 2 thanh ghi R7 và R6. Số chia 8 bit được chứa trong thanh ghi B. Thương số sau khi chia sẽ chứa trong thanh ghi R7 và R6 là phần nguyên, thanh ghi B chứa phần dư. CY : bit carry Vì AD sử dụng là loại 12 bit mà vi xử lý lại là 8 bit do đó để đọc về vi xử lý ta cần phải đọc 2 lần và giá trị A/D đọc được là byte cao x 256 + byte thấp. Để thực hiện phép toán này cần phải có chương trình con nhân số 8 bit (byte cao) và số lớn hơn 8 bit là 256 ( 100000000B). Sau đây là cách để thực hiện phép nhân này. Thieát keá traïm caân xe Trang 69 Để dễ dàng, ta xét ví dụ sau : 110111101 x000001010 Cách thực hiện thông thường là xét các bit của số nhân bắt đầu từ bên phải trước. Nếu bit đó là 1 thì ta sẽ dịch trái số bị nhân một số lần tương ứng với vị trí bit đang xét rồi thực hiện việc cộng dồn các kết quả trước đó theo đúng vị trí. Nếu bit đang xét bằng 0 thì không làm gì mà xét tiếp bit kế tiếp bên trái kề nó. Tuy nhiên, để dễ dàng viết chương trình ta có thể thực hiện như sau : thay vì xét các bit của số bắt đầu từ bên phải trước, 000000000 110111101 000000000 110111101 10001011000 10 ta lại xét từ trái qua phải. Bằng cách dịch trái số nhân qua cờ CY. Nếu cờ CY = 1 (tức là bit đang xét của số nhân = 1) thì ta cộng kết quả trước đó với số bị nhân, sau đó thực hiện việc dịch trái kết quả này đi 1 lần. Khi cờ CY = 0 thì ta chỉ việc dịch trái kết quả đó đi 1 lần mà không cộng với số bị nhân. Việc dịch trái ở đây có thể thực hiện bằng việc cộng hai lần kết quả đó, bởi vì cộng hai lần là tương đương với việc nhân cho 2 hay là dịch trái đi 1 lần. Trang sau là giải thuật thể hiện ý tưởng này. Chương trình ở đây không bao gồm việc xét dấu hay tràn của phép nhân (bởi vì số 16 bit thực sự cần nhân khi sử dụng là 256 là không lớn nên khỏi phải xét tràn). Số bị nhân 16 bit được chứa trong 2 thanh ghi R1 và R0, thanh ghi B chứa số nhân 8 bit. Sau khi nhân, kết quả chứa lại trong 2 thanh ghi R1 và R0. Thanh ghi R2, R3, R4 được sử dụng ở đây là để chứa tạm kết quả. 2) Khối biến đổi AD : Như đã trình bày ở trên, trọng tâm của khối này là ICL 7109 ngoài ra còn có mắc thêm một số linh kiện bên ngoài như điện trở tích phân, tụ tích phân. Ở đây sử dụng nguồn chuẩn từ bên ngoài, không sử dụng chân REF Out của ICL 7109. Để Thieát keá traïm caân xe Trang 70 tránh những nhiễu nó có tần số là bội của 50Hz có thể chọn thạch anh là 3MHz. Tuy nhiên, loại thạch anh này rất khó tìm nên chỉ sử dụng thạch anh 358Hz. Cách thứ nhất để đọc AD ICL 7109 là AD hoạt động bằng cách cho chân RUN/HOLD lên mức 1. Sau đó đợi chừng nào biến đổi xong chân STATUS bằng 0 mới đọc dữ liệu từng byte một về (nếu dùng vi xử lý 8bit). Chương trình được viết cho cách này. Cách khác để đọc AD là cho RUN/HOLD lên mức cao, đợi một khoảng thời gian xấp xỉ 133mili giây rồi mới đọc dữ liệu về cũng theo 2 lần riêng biệt vì sử dụng vi xử lý 8bit. Đối với chương trình viết cho Card máy tính cần có thời gian delay khi đọc dữ liệu về sau khi đã kích các chân cho phép LBEN và HBEN vì tốc độ xử lý của máy tính khá nhanh. Thời gian delay này là không cần thiết khi viết chương trình vi xử lý vì khoảng thời gian này nhỏ hơn một chu kỳ thực hiện lệnh của AT 89C51. Sơ đồ mạch như sau : Do chân RUN / HOLD của ICL 7109 có thể điều khiển được và CE / LOAD được nối mass nên lưu đồ của việc đọc AD ICL 7109 như sau: Thời gian Delay 210ns là không cần thiết khi viết chương trình vi xử lý vì khoảng thời gian này nhỏ hơn một chu kỳ thực hiện lệnh của AT 89C51. Có thể đọc AD bằng cách kích chân RUN/HOLD và sau đó đợi khoảng 133 mili giây rồi mới +5V +5V 200K 0.33uF U2 ICL7109 35 34 33 36 39 37 38 31 27 21 26 22 23 24 18 19 20 17 16 15 14 13 12 11 10 9 8 7 6 5 3 4 2 25 29 30 32 IN HI IN LO COMMON REF IN+ REF IN- REF CAP+ REF CAP- A/Z SEND MODE RUN/HOLD OSCI OSCO OSC SEL LBEN HBEN CE/LOAD TEST B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 POL OR STATUS BUF OSC REF OUT BUFF INTEG 3.58MHz 1 2 1uF 0.15uF 0.01uF JP1 1 2 1M B10 B4 STATUS B11 B6 /HBEN B3 /LBEN B7 B1 B5 R/H B8 B9 B2 B12 Thieát keá traïm caân xe Trang 71 đọc byte thấp và byte cao về để xử lý. Tuy nhiên nếu quản lý thời gian không tốt thì đọc theo kiểu này có thể không được chính xác. 4) Khối hiển thị : Khối hiển thị bao gồm 4 đèn Led 7 đoạn để hiển thị khối lượng xe cân được cũng như trạng thái hoạt động của mạch. Hiển thị ra đèn Led có thể sử dụng một trong hại phương pháp quét hoặc chốt. Do sở thích và cũng nhằm mục đích để chương trình viết đơn giản, ở đây sử dụng phương pháp chốt. Tuy rằng phương pháp này không kinh tế lắm vì mỗi đèn Led phải có một IC chốt và 7 điện trở nhưng việc lập trình đơn giản hơn. Việc chọn Led để xuất ra thông qua p2.2, p2.3, p2.4 của vi xử lý Theo bảng chân trị của IC 74LS573 ta nhận thấy : Nếu chân OC ở mức 0, và chân G ở mức thấp dữ liệu sẽ được chốt. Khi chân G lên mức cao thì dữ liệu sẽ được cho qua. Chân OC khi ở mức cao thì ngõ ra sẽ ở trạng thái tổng trở cao HiZ Theo sơ đồ đã kết nối, chân OC đã được nối xuống mass. Do đó, khi cần xuất dữ liệu ra ta phải cho chân G lên mức cao và khi muốn chốt phải cho chân này xuống mức thấp. Led 7 đoạn có ký hiệu 15102BEG – B là loại led có độ sáng khá tốt.Sơ đồ chân của loại này được cho trên hình vẽ Led 7 đoạn được kết nối với IC chốt Led 7 đoạn sẽ nhận dữ liệu từ vi xử lý thông qua IC chốt Ngoài ra ta có thể sử dụng loại led 7 đoạn có kích cỡ lớn hơn với những màu sắc khác nhau 15102BEG-B 1F DpAB EDC G2345 10 9876 Thieát keá traïm caân xe Trang 72 Av lần 5) Khối giao tiếp của máy tính : Sơ đồ kết nối của phần này như sau: Truyền thông với máy tính được thực hiện qua Port nối tiếp. Mặc dù cả chân RXD và TXD của AT98C51 đều được kết nối. Tuy nhiên, chỉ cần sử dụng một đường TXD vì chỉ phục vụ cho việc truyền về máy tính mà không cần nhận dữ liệu vào vi xử lý. Tín hiệu truyền sang máy tính là dạng mã ASCII nên trong chương trình ngoài phần đổi sang mã Led 7 đoạn để hiển thị Led còn có chương trình chuyển sang mã ASCII trước khi phát ra Port nối tiếp. Các tín hiệu TTL này đều được chuyển sang chuẩn RS232 bằng IC MAX232 trước khi truyền đi. 6) Bộ khuếch đại : Như đã trình bày ở trước, có các cách khuếch đại tín hiệu sử dụng op – amp khác nhau nhưng ở đây chỉ sử dụng mạch khuếch đại dùng 1 op – amp. Thực hiện như vậy là nhằm mục đích tránh điện áp offset. Vì nếu dùng nhiều op – amp thì độ lệch này càng nhiều. IC được sử dụng trong mạch khuếch đại là OP-07 có độ chính xác khá cao và khá ổn định Tín hiệu được đưa từ load cell vào 2 chân 2 và 3 Tín hiệu sau khi đã khuếch đại sẽ đưa ra từ chân 6 Mạch khuếch đại có hệ số khuếch đại là 160 Ở mạch có hệ số khuếch đại ,với các giá trị điện trở đã chọn thì hệ số khuếch d khuếch đại là : +5V 10uF U6 MAX232 13 8 11 10 1 3 4 5 2 6 12 9 14 7 R1IN R2IN T1IN T2IN C+ C1- C2+ C2- V+ V- R1OUT R2OUT T1OUT T2OUT 10uF 10uF VB1 SUB-D 9 5 9 4 8 3 7 2 6 1 C10 CAP TXD RXD 160 1 160 1 = + = Thieát keá traïm caân xe Trang 73 Khi đó điện áp toàn tầm ngõ vào là 160 x 30 mV = 5Volt (tỷ lệ điện áp ra của Loadcell là 30mV/ Volt). Chọn hệ số khuếch đại như vậy thì sẽ cho điện áp toàn tầm thỏa mãn yêu cầu ngõ vào AD. 7) Thiết kế bộ nguồn : Ở các đầu cân thực tế người ta thường dùng bộ nguồn switching nên có độ chính xác và ổn định rất cao. Tuy nhiên để thiết kế bộ nguồn hoạt động tốt theo kiểu đó thì phức tạp vả lại linh kiện rất khó tìm,bộ nguồn ở đây được thiết kế theo kiểu thông thường. Bộ nguồn được thiết kế với nhiều mức điện áp cho các ứng dụng khác nhau: +5Volt cung cấp cho hoạt động của tất cả các IC, ngoại trừ IC sử dụng trong Card máy tính thì dùng nguồn nuôi có sẵn trong máy tính ; nguồn –5Volt cung cấp cho chân V- của AD ICL7109 ; nguồn 12Volt cung cấp cho bộ khuếch đại sử dụng op – amp OP 07 ; nguồn 10Volt ổn định cấp cho Loadcell. Riêng nguồn chuẩn làm điện áp tham khảo cấp cho AD được thiết kế ở điện áp cố định là 2,5Volt và thay đổi được là từ 0 đến 5Volt nhằm mục đích chỉnh theo ngõ vào của tín hiệu cần biến đổi AD. Có nhiều IC ổn áp làm nguồn tham khảo rất tốt, tuy nhiên rất khó tìm. Ở đây sử dụng các IC cho chất lượng có thể chấp nhận được. Sơ đồ bộ nguồn như sau : Bộ nguồn được thiết kế gồm những phần riêng biệt như sau : • Khối 12Volt cung cấp cho op – amp sử dụng IC ổn áp LM7812 và LM7912. Đây là họ IC ổn áp dùng cho nhiều ứng dụng khác nhau. Sử dụng tản nhiệt phù hợp sẽ cho dòng ra có thể vượt quá 1 Ampere. Mặc dù được chế tạo để ổn định điện áp nhưng họ IC 78xx có thể thêm các linh kiện bên ngoài để điều chỉnh 1 2 1 2 LM7805/TO 1 3 2 VIN G N D VOUT 0.1uF 0.1uF 1 2 1 2 2200uF LM7912C/TO220 2 3 1 IN OUT G N D 0.1uF 0.33uF 2200uF LM7905/TO3 3 1 2 VIN G N D VOUT 1 2 1 2 LM7812/TO 1 3 2VIN G N D VOUT 0.1uF 1 2 1 2 T1 TRANSFORMER CT 1 5 6 4 8 - + BRIDGE 1 4 3 2 0.33uF +12V 0V -12V 24V 12V220V +5V -5V Thieát keá traïm caân xe Trang 74 được điện áp và dòng điện ở ngõ ra. Bên trong họ IC cũng có bảo vệ quá nhiệt và ngắn mạch. Sai lệch điện áp ngõ ra là từ 2% đến 4%. Tụ C1 2200F là để tránh nhấp nhô điện áp như trong các chỉnh lưu thông thường. Tụ C2 0,33F phải cần thiết khi nguồn cung cấp ở xa. Tụ C3 0,1F thì không phải để ổn định điện áp mà chỉ làm tăng đáp ứng quá độ. • Khối 5Volt sử dụng 2 IC ổn áp LM7805, LM7905 dùng làm nguồn nuôi cho tất cả các IC trong mạch vi xử lý. Điện áp ngõ vào LM7805, LM7905 được lấy từ nguồn 12Volt đã ổn định trước đó. Điện áp vào IC LM7805 theo catalogue là có thể từ 7Volt đến 20Volt DC. • Một yêu cầu cần thiết cho điện áp làm nguồn tham khảo cho AD ICL7109 là phải ổn định và chính xác. • Điện áp cấp cho Loadcell được thiết kế sử dụng LM723 nhằm mục đích làm tăng tính ổn định vì tín hiệu ra của Loadcell rất nhỏ nên dễ bị ảnh hưởng nếu nguồn không ổn định. LM723CN là IC có thể dùng để ổn áp dương hay ổn áp âm với dòng điện ra đạt tới 150mili Ampere DC. Dòng điện ngõ ra có thể làm tăng lên vài Ampere nếu dùng một hay nhiều transistor mắc bên ngoài. Tầm nhiệt độ sử dụng cho IC loại thương mại là từ 070C. LM723CN có các đặc điểm chủ yếu như sau : + Điện áp ngõ ra có thể chỉnh được từ 2Volt đến 37Volt DC tùy theo cách mắc. + Dòng điện ngõ ra đạt tới 150mili Ampere nếu không sử dụng Transistor mắc thêm bên ngoài. + Có thể chỉnh được dòng điện bảo vệ ngắn mạch. + Độ ổn định 0,01% Vout , thay đổi theo tải là 0,03%Vout (nếu dòng tải 1mA < IL < 50mA. Sai số tối đa là 0,3% và 0,6% tương ứng. Như vậy nếu muốn ổn định ở R4 5.6K 8.2K 0.1uF R11 5K 1 3 2 18K 100pF 0.1uF JP4 HEADER 2 1 2 0.33uF T2 TRANSFORMER 1 5 4 8 2200uF - + D2 BRIDGE 1 4 3 2 LM7812/TO 1 3 2 VIN G N D VOUT Vout 7 IN+ 10 3 V+ 6 Vref 4 LM723 IN- 2 V- Vc 5 CURRENTLIMIT 13 CURRENTSENSE 11 12 FREQCOMP Cap cho Loadcell 220VAC 0V +12V Thieát keá traïm caân xe Trang 75 Vsense RSC 0,66 0,33 R + R R1 R2  2 1 R R 1 7 Vout .4286,01 7 10  10Volt thì có thể mắc sai số lớn nhất là 0,06Volt. Thông số cần thiết khi thiết kế : + Tầm điện áp ngõ vào Vin : 9,5 Volt DC đến 40 Volt DC. + Tầm điện áp ngõ ra Vo : 2,0 Volt đến 37 Volt. + Sai lệch điện áp vào ra trong khoảng từ 3Volt đến 38 Volt. + Hệ số nhiệt độ trung bình của điện áp ngõ ra là 0,002% / C. + Độ dợn sóng (ở tần số từ 50Hz đến 10KHz) là : 86 dB nếu Cref là 5F và 74 dB nếu Cref = 0. + Dòng giới hạn ngắn mạch ISC là 65mA DC. + Độ ổn định trong chế độ dài hạn : là 1%/ 1000 giờ . Các thông số trên chỉ đúng khi nhiệt độ từ 0C đến 70C. Theo cách mắc linh kiện bên ngoài như trong sơ đồ thì dòng ngắn mạch là : ISC = = = 2 Ampere. Cách kết nối tiêu biểu cho điện áp ra từ 7 Volt đến 37 Volt như sau : Từ biểu thức tính điện áp ngõ ra cho bởi Catalogue : Vout = 7. R2+R1 R1 Ta suy ra : Vout = 7 1 + . Để tạo được điện áp ngõ ra là 10Volt thì tỷ số Ngoài ra để cho kết quả tốt nhất, theo khuyến cáo giá trị điện trở R2 phải nằm trong khoảng từ 10 K đến 100 K. Do đó giá trị Thieát keá traïm caân xe Trang 76 được chọn ở đây là R1 = 8,2 K, R2 là 18 K và giữa chúng có mắc một biến trở 5K để chỉnh cho phù hợp với tỷ lệ trên. Nhằm mục đích làm cho độ trôi nhỏ, theo hướng dẫn thì giá trị R3 = R1//R2 nên ở đây chọn R3 = 5,6 K. Đây là những giá trị điện trở có trong thực tế. Ngoài ra do trong mạch có sử dụng đèn Led có dòng lớn nên bộ nguồn còn được thiết kế có nguồn 5Volt riêng để cấp cho Led nhằm tránh qúa dòng cho các IC ổn áp. Thieát keá traïm caân xe Trang 77 Chương ll: LƯU ĐỒ GIẢI THUẬT GIẢI THÍCH CHƯƠNG TRÌNH CHO VI XỬ LÝ 1. Lưu đồ giải thuật cho chương trình chính Lưu giá trị điện áp trạng thái Zero đã biết trước : V1 Nhấn “Zero” ? Xuất ra Led đơn “Zero”.Xuất “0000” ra Led 7 đoạn. Đọc A/D và lưu vào cùng vị trí đã lưu V1. Nhấn “Tare” ? Xuất ra Led đơn “Tare”. Đọc A/D và lưu vào : V3 Nhấn “Netweigh” ? Đọc AD : V2 V = (V2 – V1) x 2 Đổi V sang BCD Xuất ra Led 7 đoạn Truyền ra Port nối tiếp Truyền ra Port nối tiếp Xuất ra Led đơn “Net Weigh” Đọc A/D : V4 Lấy V5 = (V4- V3) x 2 Đổi V5 sang BCD Xuất Led 7 đoạn Truyền ra Port nối tiếp Y Y Y N N N Thieát keá traïm caân xe Trang 78 2.Lưu đồ đọc số 12 bit từ ADC về vi xử lý: 3.Giải thích chương trình cho vi xử lý Điện áp từ load cell sẽ được đưa qua bộ khuếch đại , ở đây giá trị điện áp sẽ được khuếch đại lên 160 lần như đã trình bày ở trên Start Cho RUN / HOLD = 1 STATUS = 0 Cho HBEN = 0 Delay 210ns Đọc vào byte cao Cho LBEN =0 Delay 210ns Đọc vào byte thấp End N Y Thieát keá traïm caân xe Trang 79 Điện áp sau khi đã khuếch đại sẽ được đưa vào bộ chuyển đổi A/D. Sau đó tín hiệu tương tự sẽ được chuyển đổi thành số 12 bit Dữ liệu 12 bit sau đó được đưa vào vi sử lý và sẽ được xuất trực tiếp ra 4 led 7 đoạn Ta sẽ chỉnh điện áp so sánh sao cho ứng với 1 kg giá trị thập phân sẽ tương ứng la 1000 đơn vị .Để hiển thị đúng 1 kg ta sẽ dịch số trên led qua trái một lần và chọn dấu chấm sau led thứ 2 4. Chương trình quản lý trạm cân viết cho máy tính: Cũng giống như các chương trình quản lý trạm cân thực tế , chương trình viết cho máy tính bao gồm các chức năng :Đọc dữ liệu là khối lượng cân được từ vi xử lý về và hiển thị kết quả đó lên màn hình , cho phép nhập tên khách hàng , biển số xe , loại hàng hóa được cân để in phiếu cân có cả khối lượng xe , khối lượng hàng hoá, và cả lưu trữ số liệu để báo cáo số lượng xe và hàng hóa cân được trong ngày... Để nhận dữ liệu từ cổng COM chương trình viết bằng visual basic Chương trình đã viết cũng cho phép lựa chọn cổng COM , thời gian nhận dữ liệu về máy tính , tốc độ Baud nhằm mục đích ứng dụng được linh hoạt cho nhiều máy tính và đầu cân khác nhau . Riêng đối với mô hình cân xe này thì tốc độ Baud là cố định 9600 bps ( đã viết cho vi xử lý ) và thời gian nhận dữ liệu về máy tính là nhỏ hơn một giây. Ngoài ra còn có chức năng lưu trữ khối lượng khi xe đi vào để khi chiều xe là đi ra thì sẽ trừ đi khối lượng đã lưu trước đó thì sẽ được khối lượng hàng hoá đã xuất ( thực hiện ngược lại sẽ ra lượng hàng đã nhập). Sử dụng visual basic để thiết kế giao diện và nhận dữ liệu từ vi xử lý .Chương trinh dung cho máy tính là: Dim d As Date Private Sub cmdClose_Click() Unload Me End Sub Thieát keá traïm caân xe Trang 80 Private Sub Form_Load() If (MSComm1.PortOpen = True) Then MSComm1.PortOpen = False MSComm1.CommPort = 1 MSComm1.RThreshold = 4 MSComm1.InputLen = 0 'MSComm1.InputMode = comInputModeBinary MSComm1.Settings = "9600,N,8,1" MSComm1.PortOpen = True Timer1.Interval = 1000 Timer1.Enabled = True End Sub Private Sub Timer1_Timer() d = Now lb5 = d End Sub Private Sub MSComm1_OnComm() Select Case MSComm1.CommEvent Case comEvReceive Dim sok As Variant Dim nhan As Variant nhan = MSComm1.Input Text3.Text = nhan 'Text3.Text = nhan & " Kg" 'Text4.Text = (sok * 20000) & " Đ" End Select Thieát keá traïm caân xe Trang 81 End Sub Thieát keá traïm caân xe Trang 82 PHẦN IV: PHÁT TRIỂN LUẬN VĂN CHƯƠNG TRÌNH CÂN HÀNG VÀ TÍNH TIỀN TỰ ĐỘNG DÙNG CARD GẮN VÀO RÃNH CẮM MÁY TÍNH Tương tự như khi thực hiện cho vi xử lý , hệ thống cân dùng Card máy tính đơn giản hơn và bao gồm các thành phần sau đây: Các thành phần như nguồn chuẩn cấp cho AD , loadcell ; bộ khuếch đại tín hiệu từ cảm biến... đã được trình bày ở trước . Phần này chỉ trình bày cách thực hiện Card AD gắn vào rãnh cắm máy tính và chương trình viết cho tấm Card này Hệ thống cân mà sử dụng cách thức giao tiếp với máy tính theo kiểu song song này chỉ sử dụng cho khoảng cách gần vì rất dễ bị nhiễu khi truyền đi xa. Sau đây là những thiết kế cho hệ thống cân loại này. I ) Card AD gắn vào rãnh cắm máy tính : Ở đây sử dụng IC 8255 trong việc xuất,nhập dữ liệu số. Việc đọc AD 12 bit chỉ cần sử dụng một IC 8255 cung cấp 24 bit xuất , nhập để điều khiển và đọc 12 bit của AD ICL7109 là đủ. Tuy nhiên Card được thiết kế gồm hai IC 8255 là để dùng những đường xuất nhập còn lại ứng dụng cho các việc điều khiển khác như kích Cảm biến và mạch khuếch đại Biến đổi AD Giao tiếp qua rãnh cắm máy tính Máy tính với chương trình xử lý Máy in Hiển thị số liệu lên cân màn hình Nguồn chuẩn Thieát keá traïm caân xe Trang 83 đóng mở relay hay các valve selenoid dùng khí nén của dây chuyền đóng bao tự động hoặc báo quá tải... Vùng địa chỉ cho phép của Card mở rộng là :300 – 31F (Hex).Do 4 bit cao của vùng địa chỉ này là số3(11 binary) nên cần 10 đường địa chỉ, các đường dẫn địa chỉ được sử dụng đối với vùng này là từ A0 ÷A9. Ở đây chỉ sử dụng các địa chỉ từ 300- 307H Sự phân công địa chỉ cho các Port xuất nhập như sau : Hex A9A8 A7 A6 A5 A4 A3 A2 A1 A0 Địa chỉ của các Port 300 1 1 0 0 0 0 0 0 0 0 Port A của 8255 thứ nhất 301 1 1 0 0 0 0 0 0 0 1 Port B của 8255 thứ nhất 302 1 1 0 0 0 0 0 0 1 0 Port C của 8255 thứ nhất 303 1 1 0 0 0 0 0 0 1 1 Thanh ghi từ điều khiển 8255-1 304 1 1 0 0 0 0 0 1 0 0 Port A của 8255 thứ hai 305 1 1 0 0 0 0 0 1 0 1 Port B của 8255 thứ hai 306 1 1 0 0 0 0 0 1 1 0 Port C của 8255 thứ hai 307 1 1 0 0 0 0 0 1 1 1 Thanh ghi từ điều khiển 8255-2 Hoạt động của tấm Card có thể tóm tắt như sau : Khi thực hiện việc xuất nhập máy tính xuất ra các đường địa chỉ từ A0 ÷ A9, các đường địa chỉ này được nối qua bộ đệm một hướng 74244 để nâng khả năng truyền tín hiệu . Do các chân 1G,2G của các IC này được nối xuống mass, trùng với mức tích cực của nó , nên tín hiệu từ máy tính được đưa ra.Các đường địa chỉ từ A3 ÷ A9 được nối đến các chân P0 ÷ P6 của IC so sánh 74688 .Tín hiệu AEN từ máy tính được đưa đến chân cho phép G của 74688 , do đó khi xuất địa chỉ thì IC 74688 được phép hoạt động. Các địa chỉ này được so sánh với các địa chỉ đã chọn bằng DipSwitch được đưa đến các chân Q0 ÷Q6.Chân P7 được nối với Q7. Bộ so sánh 8 bit này sẽ cho ngõ ra (chân 19) của IC 74LS688 xuống mức thấp nếu có sự giống nhau ở các chân P và Q tương ứng . Ngõ ra này được nối đến ngõ vào B của IC giải mã 74139 , đường địa chỉ A2 cũng được nối đến ngõ vào A của IC này . Do chân G G B A Y0 Y1 Y2 Y3 được nối mass nên theo bảng hoạt 1 X X 1 1 1 1 động của 74139 thì khi A2=0, ngõ 0 0 0 0 1 1 1 Thieát keá traïm caân xe Trang 84 ra Y0 được chọn , do cách kết nối 0 0 1 1 0 1 1 như trên sơ đồ nên IC 8255 thứ 0 1 0 1 1 0 1 nhất được chọn , Khi A2=1thì ngõ 0 1 1 1 1 1 0 ra Y1 được chọn , và do đó IC 8255 thứ hai được chọn. Hai đường địa chỉ thấp A0, A1 được đưa đến các chân A0, A1 của 8255 để chọn chế độ hoạt động cho nó . Đó là: A1 A0 Chọn Các đường dữ liệu từ D0 ÷ D7 được 0 0 Port A xuất ra hoặc đưa vào máy tính thông 0 1 Port B qua bộ đệm hai chiều 74245. Hướng 1 0 PortC của dữ liệu được xác định thông qua 1 1 Thanh ghi từ điều khiển tín hiệu điều khiển I/OR nối đến chân DIR của 74245.Khi máy tính thực hiện sự truy cập đọc dữ liệu từ ngoại vi thì chân I/OR = 0, do đó DIR=0, dữ liệu được truyền từ B sang A . Khi chân DIR=1,dữ liệu được xuất từ máy tính ra ngoại vi (Từ A sang B). Trước khi giao tiếp cần ghi giá trị vào từ điều khiển .Tùy theo yêu cầu xuất ra hay nhập vào Port nào của 8255 thứ nhất hay thứ hai mà ghi từ điều khiển cho thích hợp ( cách xác định từ điều khiển được trình bày ở phần sau). Sau khi ghi từ điều khiển vào 8255 thì từ chương trình máy tính ta có thể thực hiện việc xuất hay nhập dữ liệu vào máy tính để ứng dụng trong việc thu thập số liệu và điều khiển sau này. Với cách kết nối như trong mạch đã vẽ , để đọc AD trước hết cần phải xuất ra mức 1 ra Port C2 của IC 8255 thứ hai để kích chân RUN/HOLD cho AD bắt đầu chuyển đổi. Sau đó có thể delay 133 mili giây hoặc đợi chân STATUS nối ở Port B6 của 8255 thứ hai bằng 0 thì mới đọc được AD về máy tính .Cũng giống như mạch vi xử lý, cần phải xuất ra LBEN và HBEN mức 0 rồi mới đọc về byte thấp , byte cao tương ứng. Tuy nhiên do cách kết nối LBEN , HBEN và RUN/HOLD cùng nằm trong Port C của IC 8255 nên khi muốn xuất mức 0 ra các chân chọn byte thì cần phải che lại không để chân RUN /HOLD bị ảnh hưởng vì Thieát keá traïm caân xe Trang 85 khi xuất từ điều khiển ra IC 8255 thì cả một Port của 8255 đều dùng cho chức năng xuất hay nhập mà không điều khiển từng bit riêng được. Cách kết nối ICL7109 vào mạch tương tự như phần dùng cho vi xử lý. Ngoài ra trên tấm Card còn có lấy các đường nguồn và mass của máy tính cung cấp cho các IC và tiện dùng cho các ứng dụng khác ( không dùng quá công suất). Có một phương pháp khác tạo Card ADC nhờ máy tính đã được giới thiệu trong tạp chí “Tự động hóa ngày nay” số 3 năm2000. Theo phương pháp này, cần phải dùng một bộ biến đổi DAC cơ sở nối tiếp với mạch khuếch đại thuật toán hay dùng DAC có kết hợp sẵn với mạch so sánh. Khi mã số lối vào DAC tăng dần và qua giá trị ak lối ra so sánh chuyển mức thì ak là tín hiệu lối vào được số hóa. Cần phải viết chương trình điều khiển việc chuyển đổi này theo các thuật toán khác nhau. Thieát keá traïm caân xe Trang 86 KẾT QUẢ THI CÔNG VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI Với những yêu cầu đặt ra như trình bày ở trước . Các phần đã thực hiện và hoạt động được có thể kể ra như sau : • Mô hình cân xe tải có gắn loadcell. • Bộ nguồn ổn định cung cấp cho loadcell, nguồn chuẩn cấp cho AD , và các nguồn khác cấp cho IC và mạch khuếch đại. • Mạch khuếch đại tín hiệu từ loadcell . • Mạch vi xử lý và chương trình đọc AD , hiển thị kết quả cân và truyền về máy tính bằng chuẩn RS-232 C . Mặc dù đã cố gắng nhiều nhưng phần thi công còn có một số hạn chế sau : Nhiễu vẫn còn tác động vào hệ thống làm cho việc hiển thị không ổn định cho lắm. Nhiễu này có thể hạn chế được bằng cách sử dụng các linh kiện có chất lượng tốt hơn cho các nguồn và cho mạch khuếch đại... Mặc dù loadcell dùng trong mô hình có tải trọng chịu được là 10kg nhưng do chỉ sử dụng một loadcell nên rất khó bố trí sao cho tải trọng phân bố đều trên bàn cân .Do đó khi có khối lượng lớn đặt lên bàn cân mà không cân bằng thì kết quả có thể không được chính xác, nhưng rất đúng nếu vật cân có khối lượng nhỏ. Để ứng dụng trong việc cân động hoặc chống rung khi cân thì cần sử dụng bộ biến đổi AD có tốc độ cao và chính xác.Ngoài ra còn phải thực hiện lấy trung bình nhiều lần hoặc dùng lọc lấy tần số thấp... Như đã trình bày ở phần trước , ngoài việc sử dụng trong hệ thống cân xe hay các ứng dụng trong việc đo khối lượng khác , hệ thống cân loại này rất có khả năng áp dụng trong dây chuyền cân và đóng bao tự động .Nếu viết chương trình cho máy tính hoặc vi xử lý một cách thích hợp thì có thể không cần dùng PLC như đã được dùng ở nhiều nơi trong thực tế . Thieát keá traïm caân xe Trang 87 PHỤ LỤC I) GIỚI THIỆU CÁC IC SỬ DỤNG TRONG MẠCH Ngoài các IC đã mô tả trên đây, phần này giới thiệu các IC khác có sử dụng trong mạch. Ở đây chỉ nêu sơ đồ chân, cách thức hoạt động . Các thông số kỹ thuật chi tiết có thể được tìm thấy trong các sổ tay hoặc các CD-ROM tra cứu khác . 1) PPI 8255 (Programable Parallel Interface): 8255 là IC giao tiếp song song lập trình được .Nó cung cấp 24 đường dữ liệu thông qua 3 Port xuất , nhập là A,B,C . Port A ,B được được lập trình như 1 byte 8 bit. Trong khi đó Port C có thể chia ra làm 2 phần 4 bit riêng biệt ,bao gồm 4 bit thấp và 4 bit cao. Ba Port của 8255 được chia thành hai nhóm: Nhóm A gồm Port A và Port C phần cao ( PC 4÷ PC7) ,nhóm B gồm Port B và Port C phần thấp (PC 0 ÷ PC 3).Việc chọn các Port này và từ điều khiển thông qua hai đường địa chỉ A1 và A0 theo bảng sau: A0 A1 Chọn 0 0 Port A 0 1 Port B 1 0 Port C 1 1 Thanh ghi từ điều khiển 8255 được chọn khi chân CS là tích cực mức 0. Cách ghi dữ liệu cho từ điều khiển: U? 8255 D0 34 D133 D232 D3 31 D430 D529 D6 28 D727 RD 5 WR36 A09 A1 8 RESET35 CS6 PA0 4 PA1 3 PA2 2 PA3 1 PA4 40 PA5 39 PA6 38 PA7 37 PB0 18 PB1 19 PB2 20 PB3 21 PB4 22 PB5 23 PB6 24 PB7 25 PC0 14 PC1 15 PC2 16 PC3 17 PC4 13 PC5 12 PC6 11 PC7 10 Thieát keá traïm caân xe Trang 88 D7 D6 D5 D4 D3 D2 D1 D0 1:Chế độ xuất nhập Port 0:Chế độ Set/Reset bit Chọn mode cho nhóm A 00:Mode0 01:Mode1 1x:Mode2 PortA 0:Xuất 1:Nhập PChigh 0:PChigh xuất 1:PChigh nhập Chọn mode nhóm B 0:Mode 0 1:Mode1 Port B 0:Xuất 1:Nhập PortClow 0:Xuất 1:Nhập Các chế độ hoạt động của 8255: Chế độ Set/Reset bit : Chế độ này được chọn khi bit thứ 7 của thanh ghi từ điều khiển là 0 .Ở chế độ này tám bit của Port C có thể được đặ lên 1 hay xóa về 0 bằng cách ghi vào từ điều khiển thích hợp như sau : Thanh ghi từ điều khiển D7 D6 D5 D4 D3 D2 D1 D0 Không dùng Mode 0: Là chế độ xuất nhập cơ bản.Ở chế độ này các Port A,B,C ( port C gồm phần thấp và cao) làm việc như một Port xuất nhập. Bit Set/Reset 1=Set 0=Reset Chọn bit 0 1 2 3 4 5 6 7 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 Bit Set/Reset flag 0 = Active Thieát keá traïm caân xe Trang 89 Mode 1: Hoạt động ở mode 1, 8255 thực hiện sự xuất nhập có bắt tay cho hai Port A và B ,các đường Port C được sử dụng làm tín hiệu điều khiển bắt tay.Các đường này thay đổi theo chức năng xuất ,nhập của mỗi Port. Mode 2: Là chế độ xuất , nhập dữ liệu hai hướng .Mode này thường được dùng trong việc giao tiếp với hai máy tính .Trong mode này Port A dùng làm Port dữ liệu hai hướng , Port B ở mode 0 hay mode 1. Port A sử dụng 5 tín hiệu điều khiển việc truyền dữ liệu từ Port C, ba đường còn lại của Port C được có thể được dùng làm đường xuất nhập ở mode 0 hay mode1 tùy yêu cầu. 2) 74LS688: 74LS688 là IC so sánh 8 bit . Ngõ vào cho phép là G ( chân số 1 ) tích cực mức thấp.IC này dùng để so sánh địa chỉ cho Card mở rộng . Bảng chân trị: Các ngõ vào Các ngõ ra P,Q G P=Q P=Q L L P>Q L H P<Q L H X H H Ngõ ra ở mức thấp khi ngõ vào cho phép G ở mức thấp và ngõ vào Pn và Qn bằng nhau tương ứng.(n=17). Các thông số kỹ thuật: + Ap cung cấp:Vcc trong khoảng 4,75V đến 5.25V. +VOH min là 2,7V. + IOH max là 0,4mA +VOL max là 0.5 V + IOL max là 24mA +VIH min là 2V + IIH max là 0,8 mA 74LS688 P0 2 P1 4 P2 6 P38 P4 11 P5 13 P6 15 P7 17 Q0 3 Q1 5 Q2 7 Q39 Q412 Q5 14 Q6 16 Q7 18 G 1 P=Q 19 Thieát keá traïm caân xe Trang 90 +VIL max là 0,8 V + IIL max là 0.2 mA Nhiệt độ chịu đựng từ 0oC đến 70 o C. 3) 74LS244: Đây là IC đệm 8 bit 3 trạng thái. Bảng chân trị: Inputs Outputs 1G 2G D L H HiZ L L H L H X Có 2 chân cho phép là 1G và 2G, 8 ngõ vào A, 8 ngõ ra Y. Ngõ ra có mức logic giống ngõ vào nếu cả hai chân cho phép tích cực mức thấp. 4) 74LS245: Là IC đệm 8 bit hai hướng,có ngõ vào cho phép tích cực thấp . Khi G=0 : +Nếu DIR=0 : Dữ liệu từ B sẽ chuyển sang A. +Nếu DIR=1: Dữ liệu từ A sẽ chuyển sang B Bảng hoạt động: Inputs Outputs G DIR B  A A  B Cách ly L L H L H X 5) 74LS139: 74LS139 là IC giải mã 2 sang 4 (ở đây được dùng trong việc giải mã địa chỉ cho Card mở rộng).Chân cho phép 74LS244 1A1 2 1A2 4 1A3 6 1A4 8 2A1 11 2A2 13 2A3 15 2A4 17 1G 1 2G 19 1Y1 18 1Y2 16 1Y3 14 1Y4 12 2Y1 9 2Y2 7 2Y3 5 2Y4 3 74LS245 A12 A23 A34 A4 5 A56 A67 A78 A8 9 G19 DIR1 B1 18 B2 17 B3 16 B4 15 B5 14 B6 13 B7 12 B8 11 74LS139 A 2 B3 G 1 Y0 4 Y1 5 Y2 6 Y3 7 Thieát keá traïm caân xe Trang 91 là chân G ( chân số 1) tích cực mức thấp. Bảng chân trị: G B A Y0 Y1 Y2 Y3 1 0 0 0 0 X X 0 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 6) 74LS04 : 74LS04 bao gồm 6 cổng NOT như trên. Chân số 8 là chân mass, chân 16 nối lên nguồn 5Volt . IC này được sử dụng trong mạch vi xử lý để làm đảo mức logic ngõ ra của 74LS138 đến các chân G của 74LS373 nhằm mục đích để xuất dữ liệu ra Led 7 đoạn hay chốt lại. 2/. 74L373 : Đây là IC chốt, có các ngõ vào dữ liệu là D0 … D7 . Điều khiển cho phép ngõ ra OC tích cực mức thấp, ngõ vào điều khiển chốt G, tích cực mức cao. U2A 74LS04 1 2 U3 74LS373 3 4 7 8 13 14 17 18 1 11 2 5 6 9 12 15 16 19 D0 D1 D2 D3 D4 D5 D6 D7 OC G Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Thieát keá traïm caân xe Trang 92 Bảng trạng thái hoạt động : OC Enable G D Output H X X HiZ L H H H L H L L L L X Q0 Khi OC ở mức cao, ngõ ra ở trạng thái tổng trở cao, bất chấp ngõ vào G và D ở trạng nào. Khi OC ở mức thấp : nếu G ở mức logic 1 thì dữ liệu được cho qua từ D sang Q. nếu G ở mức logic 0 thì dữ liệu được chốt lại. 7) LM336 – 5.0 : LM336 – 5.0 IC ổn áp chính xác 5Volt với hệ số nhiệt thấp và ổn định cao. LM336 – 5.0 còn cung cấp chân ADJ cho việc tinh chỉnh điện áp hay hệ số nhiệt một cách dễ dàng. Tầm nhiệt độ sử dụng là từ 0 đến 70C. Đặc điểm : + Có thể chỉnh được điện áp từ 4 Volt đến 6 Volt với hệ số nhiệt thấp bằng cách mắc theo sơ đồ thích hợp. + Tầm dòng điện sử dụng là từ 600A đến 10mA. + Trở kháng động là 6. + Sai số khi khởi động là 1%. + Đáp ứng nhanh. + Dễ dàng chỉnh để cho độ trôi nhiệt nhỏ nhất. + Điện áp ngược đánh thủng từ 4,8 đến 5,2 Volt. D1 LM336-5.0V/SO 4 8 5 Thieát keá traïm caân xe Trang 93 Tài liệu tham khảo: 1) Giáo trình vi xử lý Hồ Trung Mỹ 2)Đo lường và điều khiển bằng máy tính Nguyễn Đức Thành 3)Giáo trinh cảm biến Nguyễn Đức Chiến 4)Sơ đồ chân linh kiện điện tử Dương Minh Trí 5)The 8051 Micro Controller Scott Mackenzie Và một số website : www.atmel.com www.maxim-ic.com www.massload.com/truckbolt.htm Thieát keá traïm caân xe Trang 94 MỤC LỤC Trang Lời mở đầu 2 Phần một : Tổng quan về hệ thống cân điện tử . 4 Chương I : Hệ thống cân sử dụng loadcell và ứng dụng . 4 Chương II: Sơ lược các phương pháp và cảm biến được 6 dùng trong việc đo khối lượng. I) Các phương pháp đo khối lượng. 6 II) Giới thiệu về loadcell. 8 Chương III: Hệ thống cân xe. 17 I) Cầu cân. 17 II) Cách bố trí loadcell và trạm nối dây. 18 III) Thiết bị chỉ thị khối lượng. 22 IV) Quản lý trạm cân dùng máy tính. 23 Chương IV: Giới thiệu một bộ hiển thị khối lượng cụ thể . và cách cân chỉnh cho đầu cân thực tế. 24 Phần hai: Lý thuyết ứng dụng khi thiết kế mạch. 28 I) Phương pháp biến đổi AD. 28 II) Bộ khuếch đại tín hiệu. 30 III) Max 232 và họ IC biến đổi từ TTL  RS232 33 IV) Cách thức giao tiếp với máy tính có sử dụng trong luận văn. 36 V) Ngôn ngữ sử dụng trong giao tiếp máy tính Phần ba: Phần thiết kế 42 Chương V) Dùng vi xử lý thực hiện công việc của đầu cân thực tế. I) Giới thiệu AT 89C51 và cách kết nối đã sử dụng trong mạch. 42 II) Sử dụng bộ biến đổi AD 12 bit ICL7109 trong việc thiết kế 47 Thieát keá traïm caân xe Trang 95 III) Thiết kế các khối chức năng cho mạch vi xử lý. 55 IV) Giải thích chương trình viết cho vi xử lý Và lưu đồ giải thuật 77 V) Chương trình cân viết cho máy tính. 88 Phần bốn Phát triển luận văn Chương VII Kết quả thi công và hướng phát triển của đề tài 90 Phần phụ lục I) Giới thiệu các IC sử dụng trong mạch. II) Tài liệu tham khảo.

Các file đính kèm theo tài liệu này:

  • pdfluan van tot nghiep.pdf