Trên thực tế, việc nhận dạng dấu vân tay có thể thực hiện bằng cách sử dụng máy tính nhưng trong một số trường hợp cần thiết các thiết bị này phải hoạt động liên tục 24/7 thì việc sử dụn
TỔNG QUAN VỀ ĐỀ TÀI
Đặt vấn đề
Ngày nay, công nghệ sinh trắc học được ứng dụng rộng rãi trong đời sống
Trong đó, công nghệ nhận dạng vân tay là được ứng dụng nhiều nhất Người ta nhận thấy các đặc trưng vân tay không thể dễ dàng bị thay thế, chia sẽ, hay giả mạo, … Ngoài ra dấu vân tay của con người không ai giống ai, kể cả là sinh đôi cùng trứng xác suất trùng lấp dấu vân tay giữa người này với người kia gần như là 0%, và không đổi trong suốt cuộc đời Do vậy trong việc nhận dạng một người, công nghệ này được xem là đáng tin cậy hơn so với các phương pháp truyền thống như: dùng mật khẩu, mã thẻ,
Trên thực tế, việc nhận dạng dấu vân tay có thể thực hiện bằng cách sử dụng máy tính nhưng trong một số trường hợp cần thiết các thiết bị này phải hoạt động liên tục 24/7 thì việc sử dụng hệ thống nhúng có nhiều ưu điểm hơn vì nó tiêu tốn ít năng lượng hơn và hoạt động ổn định liên tục Với sự phát triển của khoa học kỹ thuật hiện nay có rất nhiều hãng sản xuất các lõi có tốc độ xử lý cao, có thể kết nối với nhiều thiết bị ngoại vi… , đáp ứng tốt trong các ứng dụng giám sát, đo lường điều khiển từ xa qua mạng Với thực tế như trên luận văn thực hiện chương trình nhận dạng vân tay trên hệ điều hành LINUX nhằm mục đích có thể phát triển chạy trên hệ thống nhúng ARM9 đồng thời thực hiện giao tiếp PC và hệ thống nhúng với các thiết bị công nghiệp qua mạng Ethernet, truyền thông theo chuẩn Modbus TCP trên hệ điều hành Linux từ đó tích hợp hệ thống bảo mật sử dụng vân tay cho một hệ thống SCADA với giao thức Modbus TCP/IP.
Mục tiêu đề tài
• Mục tiêu chính của đề tài : Xây dựng hệ thống nhận dạng vân tay, truyền thông với PLC qua Modbus TCP/IP Hệ thống được xây dựng bằng ngôn ngữ C trên hệ điều hành Linux để có thể phát triển chạy trên hệ thống nhúng
• Xây dựng hệ thống nhận dạng vân tay trên hệ điều hành Linux
• Thực hiện giao tiếp hệ thống nhận dạng vân tay với PLC qua truyền thông Modbus TCP/IP
• Tích hợp hệ thống bảo mật bằng vân tay với hệ thống SCADA theo giao thức TCP/IP
Tình hình nghiên cứu về công nghệ nhận dạng vân tay
• Năm 1823, nhà phẫu thuật Jan Evangelista Purkyne thuộc trường đại học Breslau đã trình bày trong luận án của mình về 9 mẫu vân tay
• Năm 1858, William Herschel đã dựa vào vết vân tay để nhận dạng tù nhân
• Năm 1880, bác sĩ Người Anh Henry Faulds đưa ra kiến nghị lấy dấu vân tay của tội phạm tại hiện trường xảy ra vụ án và đưa ra lý luận gien vân tay Năm 1882, theo sáng kiến của A Bertion, lần đầu tiên cảnh sát Paris đã áp dụng lăn ngón tay trên các hồ sơ căn cước [31]
• Năm 1892, Francis Galton là người đầu chia vân tay thành 3 nhóm: xoáy, móc, sóng [31]
Việc sử dụng các nghiên cứu khoa học về dấu vân tay của thế kỷ 19 đóng vai trò khởi đầu quan trọng cho việc ứng dụng rộng rãi công nghệ nhận dạng vân tay trong nhiều lĩnh vực của cuộc sống hiện đại.
• Năm 1924, FBI (Federal Bureau of Investigation) đã thu thập và lưu trữ hơn 250 triệu dấu vân tay của người dân để cho việc điều tra tội phạm và nhận dạng những người bị giết
• Nước Anh cũng sớm sử dụng biện pháp này và đến năm 1944, họ đã lưu trữ tới hơn 90 triệu dấu vân tay của tất cả binh lính và những người dân
4 Với việc sử dụng dấu vân tay để nhận dạng, cảnh sát có thể truy tìm tung tích tội phạm, người chết, mất thẻ căn cước hoặc mắc bệnh tâm thần lú lẫn,
• Năm 1977, chương trình IAI's Certified Latent Print Examiner ra đời được áp dụng để xác nhận phạm nhân trong tòa án
Với sự phát triển ngày càng nhanh chóng của khoa học kỹ thuật, cho tới nay các ứng dụng công nghệ này được áp dụng rộng rãi khá thành công trên thế giới Trên máy tính cá nhân, dựa vào kích thước của CSDL vân tay người ta chia sản phẩm ứng dụng vân tay thành hai loại chính:
• Hệ thống vân tay loại nhỏ Đặc điểm chung của những hệ thống này là chỉ hỗ trợ số vân tay dưới1000 vân tay Chương trình nhận dạng vân tay trên máy IBM Think Pad T43 cho phép người dùng đăng nhập vào windows XP bằng cách đặt ngón tay của mình vào vùng quét của máy thay vì phải đánh mật khẩu
• Hệ thống vân tay loại lớn
Những hệ thống nhận dạng vân tay loại lớn này thường có điểm chung là có kích thước CSDL vân tay rất lớn, từ vài chục nghìn đến hàng triệu vân tay Đối tượng sử dụng là những tập đoàn đa quốc gia có chi nhánh trên toàn cầu, những chính phủ điện tử cao cấp Điều này đòi hỏi hệ thống phải có năng lực xử lý rất mạnh, có thể đáp ứng hàng chục ngàn yêu cầu nhận dạng trong một giây
Những hệ thống này thường hoạt động trên môi trường mạng internet và có kiến trúc client – server, bao gồm một trung tâm xử lý nhận dạng và lưu trữ vân tay và nhiều client nằm khắp nơi trên mạng internet toàn cầu làm nhiệm vụ thu nhận dấu vân tay
Không dừng lại ở đó, cùng với sự phát triển mạnh các sản phẩm nhúng và một thị trường thiết bị nhúng tiềm năng vô cùng to lớn; việc đưa các kết quả nghiên cứu của công nghệ Nhân dạng vân tay lên các thiết bị nhúng là điều tất yếu nhằm phục vụ cho mục đích tiện dụng, chuyên dụng, và phổ biến hơn trong thực tế Các thiết bị nhúng tiêu biểu ứng dụng công nghệ nhận dạng vân tay:
THUẬT TOÁN NHẬN DẠNG VÂN TAY
Các phương pháp nhận dạng vân tay
Nhận dạng vân tay là một lĩnh vực của sinh trắc học đã tồn tại lâu đời Tuy nhiên, sự xuất hiện của máy tính trong thời gian gần đây đã giúp lĩnh vực này đạt được những tiến bộ đáng kể, trở thành một trong những phương pháp sinh trắc tin cậy nhất.
Quá trình thực nhận dạng vân tay bao gồm ba công đoạn chính: thu nhận vân tay, trích chọn đặc tính vân tay và đối sánh vân tay Tùy thuộc vào ngữ cảnh và mục đích sử dụng, các công đoạn này có thể được thực hiện theo nhiều phương pháp khác nhau, đáp ứng nhu cầu thực tế của từng ứng dụng.
Công nghệ nhận dạng vân tay ngày nay đã đạt tới độ chính xác rất cao Tuy vây, các hệ thống nhận dạng AFIS (Automated Fingerprint Identification Systems) vẫn còn nhiều mặt hạn chế Chẳng hạn như IAFIS của FBI có cơ sở dữ liệu lớn tới hàng trăm triệu vân tay, thời gian tìm kiếm tính bằng phút cho một mẫu, độ tin cậy cao… nhưng đó là một hệ thống đồ sộ gồm nhiều máy tính xử lý song song và giới hạn trong giám định hình sự Trong ứng dụng dân sư, các hệ thống nhận dạng thường được giới hạn ở một mức độ ít phức tạp hơn: số mẫu không lớn (khoảng vài nghìn), cấu trúc hệ thống kiểu nối tiếp, ảnh đầu vào không có quá nhiều nhiễu (nhằm giảm bớt gánh nặng xử lý tính toán),… có vậy mới giải quyết được vấn đề chi phí đồng thời vẫn đảm bảo độ tin cây
• Luận văn này sẽ thực hiện nhận dạng vân tay bàng ảnh số theo hướng triển khai trong dân sự Chính vì vây có thể lựa chọn phương pháp nhận dạng dựa trên cơ sở phát hiện và sử dụng các điểm nút đặc trưng (gọi là minutiae) Đây là phương pháp thứ hai trong ba phương pháp nhận dạng được áp dụng nhiều hiện nay Hệ thống AFIS nói chung cũng sử dụng phương pháp này
• Phương pháp thứ nhất, sử dụng đặc trưng tương quan của hai mẫu vân tay
Xếp chồng trực tiếp hai mẫu này và dựa vào tương quan giữa các pixel để
6 tính toán sự khác nhau giữa hai mẫu Phương pháp này không thích hợp với đồ án vì đòi hỏi khối lượng tính toán lớn mà chất lượng ảnh phải đảm tốt
Pháp thứ ba tận dụng đặc trưng đường vân Các đường vân mẫu được trích xuất và so sánh Phương pháp này không phù hợp với ảnh đồ án, chỉ áp dụng trên mẫu có chất lượng kém (như vân tay tội phạm để lại tại hiện trường).
Hình thức thể hiện và các đặc tả của vân tay
Hình 2.1: Vân tay thể hiện ở cấp độ very-fine Hình thức thể hiện vân tay được chia thành ba cấp độ:
• Global: thể hiện tổng thể vân tay
• Local: thể hiện vân tay bởi một số nút đặc trưng khi đường vân làm mảnh đến một pixel
Dấu vân tay rất mịn thể hiện ở dạng vòng tròn cấu tạo nên các vân - lỗ chân lông mồ hôi Hình 3 minh họa dấu vân tay ở mức độ rất mịn, các lỗ chân lông mồ hôi được khoanh tròn, điểm phân nhánh (bifurcation) và điểm kết thúc (termination) được đánh dấu bằng vòng tròn.
7 Đối với cấp độ very-fine thì đòi hỏi các phương tiện xử lý tốn kém cũng như các yêu cầu đặc biệt khác mà khó có thể ứng dụng trong dân sự Chẳng hạn để trích được các pores, ảnh cần có độ phân giải tối thiểu 1000dpi Sau đây sẽ tìm hiểu sâu hơn các đặc trưng vân tay ở hai cấp độ đầu Ở cấp độ global, đặc trưng vân tay liên quan nhiều đến sự tạo hình của đường vân và các điểm kỳ dị (singular), chúng bao gồm: loop (đường vân tạo vòng xoáy hở), delta (đường vân tạo hình tam giác) Điểm kỳ dị có vai trò quan trọng trong việc thực hiện phân loại vân tay và tổ chức, xây dựng cơ sở dữ liệu Ở mức độ cục bộ, các đặc trưng của vân tay được gọi là minutiae Người ta đã thống kê có tới 150 đặc trưng loại này Hai đặc trưng cơ bản và nổi trội hơn cả là ride temination và ridge bifurcation (cũng được gọi tắt là minutiae) a) b)
2.2: Hai dạng minutiae quan trọng a) ridge termination; b) ridge bifurcation
2.3:Vân tay thể hiện trong cấp độ global a) arch; b) whorl; c) tented arch; d) left loop; e) right loop
Trong hình 5: hình vuông đánh dấu điểm loop, hình tam giác đánh dấu điểm delta
Các nguyên lý nhận dạng vân tay
Các nguyên lý nhận dạng vân tay thì liên quan chặt chẽ đến cách thức tìm ra sự tương đồng giữa ảnh vân tay đầu vào với một template trong cơ sở dữ liệu vân tay
Dưới đây là ba phương pháp chính lần lượt dựa trên các cơ sở là đối sánh minutiae, correlation và ridge feature
Hình 2.4: Tạo mã vân tay a) ảnh ban đầu; b) trích chọn minutiae quan trọng
Phương pháp đầu tiên phổ biến hơn cả và được ứng dụng rất rộng rãi Hai vân tay sẽ được so sánh bằng các điểm minutiae trích ra từ các vân tay đó Giai đoạn thứ nhất này còn goi là tạo mã, các minutiae tạo thành tập hợp điểm đặc trưng và được lưu trữ trong từng mảng 2D Giai đoạn thứ hai sẽ tìm vị trí khớp phù hợp giữa template và input-image sao cho số các minutiae tao thanh cặp tương đồng là lớn nhất
Còn hai nguyên lý còn lại không phù hợp với luận văn Correlation-based thực hiện bằng cách xếp chồng hai mẫu vân tay lên nhau để tìm ra tương quan giữa chúng, phương pháp này gặp hạn chế khi quá trình thu nhận ảnh vân tay gặp phải các biến dạng méo Còn ridge feature-base là một phương pháp cao cấp, đòi hỏi các
9 bước xử lý phức tạp và thường dùng cho ứng dụng nhận dạng với các vân tay có chất lượng rất xấu
Luận văn này lựa chọn phương án đầu tiên vì đó là một phương pháp cơ bản, phù hợp với điều kiện hiện tại cho phép và cũng hứa hẹn cho kết quả khả quan.
Xây dựng hệ thống nhận dạng vân tay bằng ảnh số
• Kiểu nhận dạng là identification, nghĩa là một mẫu cần nhận dạng (input) sẽ nhận kết quả bằng cách đối sánh với N mẫu khác trong cơ sở dữ liệu (template)
Hệ thống có phương thức hoạt động trực tuyến để đảm bảo tính liên tục, khả năng tích hợp với các thiết bị thu thập dữ liệu thời gian thực (như đầu đọc vân tay, cảm biến) và đồng thời thu thập dữ liệu và tiến hành nhận dạng.
• Kiến trúc hệ thống thiết kế theo hướng xử lý dữ liệu nối tiếp, gồm tám khâu chính trình bày trong Hình-2.7
Hình 2.5: Sơ đồ khối hệ thống nhận dạng vân tay
Tám khâu này có các chức năng hoạt động như sau: i Thực hiện thu nhận ảnh
- Thực hiện trích chọn góc định hướng (orientation) để phân loại vân tay.- Tạo vectơ đặc tính để phân loại vân tay thành 5 nhóm.- Tạo cơ sở dữ liệu lưu trữ các template-image.- Trích chọn minutiae làm đặc tính để đối sánh.- Đối sánh input-image với template-image để đưa ra kết quả nhận dạng vân tay.
2.5 Trích chọn minutiae cho đối sánh vân tay Ta có thể thực hiện việc trích chọn minutiae qua tám khâu như sau
Hình 2.6:Thuật toán trích chọn minutiae
• Khối tiền xử lý ảnh thực hiện chuẩn hóa kích thước ảnh
• Khối tăng cường chất lượng ảnh thực hiện làm nổi rõ đường vân
• Khối orientation image thực hiện ước lượng trường định hướng
• Khối segmentation (khoanh vùng ảnh vân tay) thực hiện tách vùng ảnh cần quan tâm nhiều trong xử lý trích chọn đặc tính
• Khối tạo ridge map (ảnh nhị phân với đường vân có giá trị logic 1)
• Khối làm mảnh đường vân Đường vân làm mảnh tới độ rộng đồng nhất một pixel từ ridge map
• Khối hiệu chỉnh đường vân và lọc minutiae sai cấp một Đường vân sẽ được làm “trơn”, minutiae sai kiểu lake (dạng hình xuyến nhỏ), dạng điểm, chẽ ngắn, đoạn vân ngắn sẽ loại bỏ
• Lọc minutiae sai cấp hai và tạo mã vân tay bằng minutiae
Kết thúc khâu này các template sẽ được tạo ra
2.5.1 Chuẩn hóa ảnh đầu vào Mục đích của bước này là làm giảm độ khác biệt các giá trị mức xám giữa các vân tay với nhau nhằm tạo thuận lợi cho các bước xử lý tiếp theo Nguyên nhân của sự khác biệt giá trị mức xám này là do quá trình lấy dấu vân tay từ thiết bị đã tạo nên sự không đồng đều màu, có chổ màu lợt màu đậm Đặc biệt, ảnh vân tay sau khi được chuẩn hóa, các vân tay sẽ được làm rõ hơn mà không làm thay đổi cấu trúc của vân tay (hình 3.2)
Công thức thuật toán của Chuẩn hóa ảnh: Ψ
Trong đó I(i,j) là giá trị mức xám tại điểm ảnh (i,j), M và VAR tương ứng là mean và variance của I, Ψ(i, j) là giá trị mức xám tại điểm (i,j) sau khi đã được chuẩn hóa, M 0 và VAR 0 tương ứng là mean và variance mong muốn
12 Hình 2.7 Minh họa kết quả chuẩn hóa ảnh; (a) ảnh gốc; (b) ảnh đã được chuẩn hóa
2.5.2 Chuẩn hóa kích thước ảnh Ảnh chuẩn đầu vào có kích thước 480 x 320 pixel Các thuật toán xử lý ảnh vân tay về sau thường áp dụng cho từng từng block vuông trên ảnh (thường sử dụng các block vuông cạnh 16 pixel, 32 pixel,…) Nên kích thước ảnh chuẩn hóa hợp lý hơn là 300 x 256 pixel Để thực hiện điều này sẽ “cắt” đi một vùng dữ liệu ảnh Phần này cũng không ảnh hưởng quá nhiều tới kết quả nhận dạng cuối cùng vì đối với bộ dữ liệu đã chọn, các vùng ảnh ở gần khung thường đóng vai trò làm background
2.5.3 Ước lượng hướng ảnh Mục đích của bước này là xác định hướng của các đường vân tay; nhằm phục vụ cho bước Ước lượng tần số ảnh và Lọc Gabor Đây được xem là một trong những bước quan trọng nhất trong phần Tăng cường ảnh; vì nếu việc Ước lượng hướng không đúng sẽ dẫn đến việc Ước lượng tần số và Lọc Gabor sai; kết quả này làm ảnh sau khi tăng cường không tốt, thậm chí còn xấu hơn rất nhiều so với ảnh ban đầu; dẫn đến việc rút trích đặc trưng không đúng Các bước chính của Ước lượng hướng ảnh
Chia Ψ thành nhiều ô có kích thước w × w (giá trị w đề nghị là 16)
13 Ở mỗi ô, có tâm điểm (i,j), dùng toán tử Sobel để tính gradient , và , tại mỗi điểm (i,j) Toán tử Sobel ngang được dùng để tính , : !1 0 1
2 0 2 1 0 1% Toán tử Sobel dọc được dùng để tính , là: !1 0 1
2 0 2 1 0 1% Ước lượng hướng ở mỗi ô có tâm điểm (i,j) theo phương trình sau:
, Trong đó 0, là hướng cục bộ của ô có tâm điểm là (i,j)
Sử dụng lọc Gaussian làm mượt các trường hướng của ô căn cứ vào thông tin của các ô lân cận, vì các điểm gây nhiễu, vân bị đứt, hay các đặc trưng vân tay, … trong ảnh vân tay làm cho việc xác định hướng cục bộ của ô không đúng Ngoài ra, tính chất hướng của các ô thay đổi một cách từ từ so với các ô lân cận của nó, nên một lọc thông thấp (low-pass) được dùng để chỉnh sửa những hướng vân cục bộ sai Để thực hiện lọc thông thấp, hướng của các ô được chuyển về các trường véc tơ liên tục: Φ 4 , cos 20, Φ 8 , sin 20, Trong đó Φ 4 , và Φ 8 , là các trường véc tơ tương ứng với x và y Áp dụng bộ lọc thông thấp lên các trường véc tơ ta có:
Trong đó G là bộ lọc thông thấp Gaussian kích thước < Φ = , Nếu trong cửa sổ hướng không chứa đặc trưng vân tay nào thì hình dạng của x-
15 signature là một hình sin rời rạc có biên độ gần bằng nhau, do đó tần số của vân có thể được ước lượng từ x-signature Đặt \(T(i, j)\) là khoảng cách trung bình của cặp đỉnh liền kề trong x-signature Tần số vân \(\Omega\) được tính theo công thức sau: \(\Omega = \frac{1}{2T(i, j)}\).
Ω, 1/N, Đối với ảnh vân tay có độ phân giải không thay đổi , thì giá trị của tần số vân cục bộ là một khoảng xác định nào đó Như đối với ảnh 500dpi, giá trị tần số là [1/3,1/25]; do đó nếu giá trị ước lượng tần số nằm ngoài phạm vi của tần số thì được gán giá trị là -1 để xác định đây là ô không thể xác định được tần số Đối với những cửa sổ hướng có chứa những đặc trưng vân tay thì hình dạng của x- signature là một hình sin có giá trị của đỉnh biên độ trên lệch nhau nhiều Gí trị tần số của ô được suy ra từ các giá trị tần số của các ô lân cận
Ta có thuật toán như sau:
Wg: là một nhân Gaussian rời rạc
(i) Nếu tồn tại ít nhất có một ô có giá trị tần số là -1, thì hoán đổi giữa Φ và Φ P Sau đó quay lại bước (i)
Khoảng cách giữa các tâm của vân thay đổi rất ít trong cùng một vùng lân cận cục bộ, do vậy một bộ lọc thông thấp có thể được dùng để xoá outliner :
Trong đó: Wt là một bộ lọc thông thấp hai chiều
Hình 2.8 Cửa sổ hướng và x-signature
2.5.5 Tăng cường ảnh bằng phương pháp lọc Gabor Phương pháp lọc Gabor được triển khai bởi Lin Hong [12] là một trong những phương pháp Tăng cường ảnh vân tay phổ biến nhất hiện nay Phương pháp này dựa vào bộ lọc Gabor mà bộ lọc này là sự hòa hợp của hướng vân và tần số vân cục bộ
Các bước chính của phương pháp này bao gồm: Chuẩn hóa ảnh (normalization), Ước lượng hướng ảnh (orientation image estimation), Ước lượng tần số ảnh (frequencyimage estimation), Tạo các vùng mặt nạ (region mask generation) và Lọc Gabor (filtering)
17 Hình 2.9 Các bước tăng cường ảnh của phương pháp lọc Gabor
Trích chọn minutiae
Giai đoạn này bao gồm: nhị phân hóa ảnh bằng thuật toán local threshold với ảnh đã được tăng cường kết hợp với kết quả khoanh vùng ảnh vân tay ở phầntrên; sau đó với ảnh có các đường vân đã được làm mảnh đến độ rộng một pixel thì thực hiện tìm minutiae bằng thuật toán crossing number. a) b)
2.10: Thông số của hai dạng minutiae quan trọng a) bifurcation; b) termination.
19 2.6.1 Nhị phân hóa và làm mảnh đường vân
Sau tăng cường ảnh bằng lọc Gabor, đường vân tây đã nổi rõ hơn so với ảnh ban đầu Đây là lúc sử dụng thuật toán local threshold chuyển đổi ảnh xám đã tăng cường chất lượng đó thành ảnh đen trắng a) b)
Hình 2.11: Nhị phân hóa và làm mảnh đường vân a) ridge-map; b) thinned ridge-map
Kích thước cửa sổ 32x32 pixel trong biến đổi Fourier rời rạc thì kích thước block cho phân ngưỡng cục bộ có thể là: 32x32, 32x16, 16x16 ,16x8 pixel Ảnh này tiếp tục được làm mảnh bằng thuật toán morphology cho ảnh đen trắng sau cùng với đường vân thể hiện bằng đường màu trắng (giá trị logic 1) có độ rộng đồng nhất một pixel
2.6.2 Phát hiện minutiae Vân tay sau khi đã làm mảnh có thể bắt đầu tìm các minutiae Thuật toán dùng để phát hiện minutiae sử dụng trong đồ án là crossing number Nó dùng một cửa sổ kích thước 3x3 pixel, lấy tất cả các điểm ảnh trong cửa sổ, sau đó khảo sát giá trị logic của các điểm ảnh xung quanh điểm ảnh [i,j] ở chính giữa cửa sổ đó Tùy vào kết quả tính toán của biểu thức crossing number thì kết luận rằng: điểm [i, j] đang xét là một điểm phân nhánh, điểm cụt hay đang nằm trên một đường vân
Công thức tính như sau:
= ∑ − Ảnh sử dụng phát hiện các minutiae phải là ảnh nhị phân, do đó val p ( ) ∈ { } 0,1 Các biến 1p , p2 , , 7p thứ tự tạo thành các điểm lân cận điểm giữa cửa sổ đang khảo sát xét theo một chiều thuận hoặc ngược kim đồng hồ
Khi đó định nghĩa điểm [i,j] đang xét là:
• trên đường vân nếu cp(n) = 2
Thuật toán tìm kiếm và giá trị crossing number có vai trò quan trọng, không những dùng trong việc phát hiện minutiae mà còn giúp loại bỏ các minutiae sai (được cho là nhiễu) a) cn(p) = 2 b) cn(p) = 2 c) cp(n) = 3 d) cn(p) = 1
1.12: Phát hiện minutiae a), b) pixel trên đường vân; c) bifurcation minutiae; d) termination minutiae.
2.6.3 Ước lượng khoảng cách đường vân
Vân tay trên ngón tay không giống nhau giữa mỗi người Ngay cả trường hợp ở một người, các đường vân cũng thể hiện sự khác biệt trên từng ngón tay Do vậy, ước lượng khoảng các đường vân được hiểu là dải trị trung bình khoảng cách giữa hai đường vân song song và gần nhau Đây là một thông tin làm tiền đề cho công đoạn lọc minutiae về sau
Những đường vân nhị phân có độ rộng một pixel từ quá trình biên mỏng trước đó tạo điều kiện thuận lợi cho việc ước lượng khoảng cách đường vân bằng phương pháp quét Cụ thể, tiến hành quét một số hàng và cột trên ảnh đường vân đã biên mỏng (thinned ridgemap), ghi lại vị trí các điểm trên đường vân, sau đó tính giá trị trung bình khoảng cách các điểm để có được kết quả mong muốn.
2.6.4 Lọc đặc trưng (minutiae filtering) Sự xuất hiện các lỗ, các đứt gãy nhỏ và các cầu giữa các vân trên ảnh vân tay đã được nhị phân hóa làm ảnh hưởng đến việc rút trích sai các đặc trưng Như vậy một bước tiền xử lý trước khi rút trích các đặc trưng sẽ hữu ích cho việc loại bỏ các đặc trưng lỗi
Hình 2.13 Lỗ và đứt gãy nhỏ trong ảnh vân tay đã được nhị phân hóa và làm mỏng.
Có hai loại xử lý để loại bỏ các đặc trưng lỗi: xử lý dựa vào cấu trúc vân (structural post-processing) và lọc đặc trưng theo miền mức xám ảnh (minutiae filtering in the gray-scale domain) [31]
Xử lý dựa vào cấu trúc vân: để phát hiện các đặc trưng lỗi, có thể sử dụng một số cấu trúc đơn giản Xiao xác định các cấu trúc đặc trung lỗi và đưa ra phương pháp loại bỏ chúng Thuật toán sử dụng dựa trên các luật đơn giản Thuật toán sử dụng dựa trên các luật đơn giản; xác định các đặc tính số học liên quan đến các đặc trưng: chiều dài các vân, góc đặc trưng, và số các đặc trưng đối diện gần kề trong lân cận
22 Hình 2.14 Các cấu trúc vân lỗi phổ biến được điều chỉnh lại thành các cấu trúc vân đúng.
Đối chiếu vân tay để định danh mẫu
Thuật toán đối sánh vân tay so sánh hai ảnh vân tay và cho ra độ tương tự nằm trong khoảng từ 0 đến 1 Kết luận đối sánh khớp hay không phụ thuộc vào ngưỡng t Phần lớn các thuật toán nhận dạng vân tay đều đối sánh các điểm đặc trưng, trong khi chỉ một số ít đối sánh trực tiếp trên ảnh xám Ngoài ra, việc đối sánh vân tay rất phức tạp do chịu ảnh hưởng bởi nhiều yếu tố.
Cho đến nay, có rất nhiều thuật toán đối sánh vân tay đã được đề xuất để làm giảm ảnh hưởng các yếu tố trên Hầu hết các thuật toán này không gặp khó khăn trong đối sánh các ảnh vân tay chất lượng tốt Nhưng trong ảnh chất lượng thấp, đối sánh vân tay vẫn còn là một thách thức Các phương pháp đối sánh vân tay có thể được phân thành ba: Đối sánh dựa vào độ tương quan, Đối sánh dựa vào đặc trưng, và Đối sánh dựa vào đặc tính vân
Vì ngay từ ban đầu đã lựa chọn phương pháp nhận dạng vân tay trên cơ sở là minutiae Nên khâu thực hiện đối chiếu vân tay sẽ dựa vào các điểm nút đặc trưng nay Việc đối chiếu dựa trên hai bộ số liệu: I của input-image và T của template-
Hình-23 dưới đây thể hiện sự đối sánh hai mẫu vân tay trên cơ sở các minutiae đã được trích chọn ở bước trên Hai minutiae ở mỗi mẫu được nối với nhau bằng đường liền nét thì thể hiện sự trùng khớp với nhau
Hình 2.15: Đối chiếu vân tay dựa trên cơ sở minutiae Đối sánh đặc trưng cục bộ (local minutiae matching) bao gồm việc so sánh hai dấu vân tay căn cứ vào các cấu trúc đặc trưng cục bộ; các cấu trúc cục bộ được đặc tính hóa độc lập với các phép biến đổi trên toàn cục (như sự dịch chuyển, sự quay, ); do đó, không cần canh chỉnh trên toàn cục trước khi đối sánh vân tay Việc đối sánh cục bộ và toàn cục làm cho việc đối sánh sẽ trở nên đơn giản, độ phức tạp tính toán giảm; phù hợp với những hình vân tay bị biến dạng (méo mó hay bị co giản), và độ phân biệt cao với các ngón tay khác Jiang và Yau (2000) [21] và Ratha (2000) [37] đã đề nghị một vài kỹ thuật cho loại đối sánh này Cấu trúc cục bộ của Jaing và Yau đưa ra có dạng là một đặc trưng trung tâm cùng với hai đặc trưng láng giềng gần nó nhất; véc tơ v i là đặc tính của đặc trưng m i , m j là đặc trưng láng giềng gần m i nhất, m k là đặc trưng láng giềng gần m i thứ nhì
24 V i = [d ij , d ik , θ ij , θ ik , ϕ ij , ϕ ik , n ij , n ik , t i , t j , t k ],
Trong đó d ab là khoảng cách giữa đặc trưng m a và m b , 0 _` là độc lệch hướng giữa góc 0 _ và 0 ` của m a và m b , a _` độ lệch hướng giữa góc 0 _ của m a và hướng của cạnh nối từ m a , n ab là số vân giữa m a và m b và t a là loại đặc trưng của m a
Hình 2.16 Các đặc tính của cấu trúc cục bộ được dùng bởi Jiang và Yau (2000).
Việc đối sánh đặc trưng cục bộ được thực hiện bằng việc tính toán mỗi cặp đặc trưng m i và m’ j , i = 1 m, j = 1 n, một khoảng cách trọng số giữa các véc tơ v i và v’ j Cặp đối sánh tốt nhất được chọn và được dùng làm điểm tham chiếu (reference point) cho hai dấu vân tay Các véc tơ đặc tính của các cặp còn lại được canh chỉnh theo điểm tham chiếu để đối sánh và kết quả đối sánh được tính toán dựa vào độ khác biệt của các cặp đối sánh này
KẾT NỐI MẠNG ETHERNET SỬ DỤNG SOCKET CỦA UNIX
Tổng quan về mạng Ethernet
Ethernet được phát minh bởi Robert Metcalfe và David Boggs của công Ty Xerox PARC vào năm 1973 với tốc độ ban đầu là 2.94Mbps Sau này Metcalfe gia nhập hãng Digital và cùng với hãng này hợp tác với Intel và Xerox để cùng phát triển Ethernet cho đến ngày Ethernet được "chuẩn hóa" bởi tổ chức IEEE vào năm 1983 Ethernet có xuất xứ là tên gọi một sản phẩm của công ty Xerox, được sửdụng đầu tiên vào năm 1975 để nối mạng 100 trạm máy tính với cáp đồng trục dài1km, tốc độ truyền 2,94 Mbit/s và áp dụng phương pháp truy nhập busCSMA/CD Từ sự thành công của phương pháp này, Xerox đã cùng DEC và Intel đã xây dựng một chuẩn 10 Mbit/s- Ethernet Chuẩn này chính là cơ sở cho IEEE802.3 sau này Đặc biệt, với phiên bản 100 Mbit/s (Fast Ethernet, IEEE 802.3u), Ethernet ngày càng đóng một vai trò quan trọng trong các hệ thống công nghiệp Bên cạnh việc sử dụng cáp đồng trục, đôi dây xoắn và cáp quang, gần đây Ethernet không dây (Wireless LAN, IEEE 802.11) cũng đang thu hút được sự chú ý
Hình 3.1 : RJ45 và cáp sử dụng trong đề tài
Giới thiệu về socket trong UNIX
Phiên bản Berkeley của UNIX giới thiệu công cụ giao tiếp socket Khái niệm socket mở rộng cho khái niệm và kỹ thuật giao tiếp qua đường ống (pipe) tuy nhiên với socket ta có thể giao tiếp với các tiến trình giữa nhiều máy khác nhau, chia sẻ tài nguyên thông qua mạng Không chỉ dùng cho mạng ta có thể sử dụng socket trên một máy cục bộ, trong cùng một hay nhiều tiến trình khác nhau của máy đơn
Socket cho phép mô hình khác chủ (client/server) hoạt động hiệu quả trên rất nhiều ứng dụng ngày nay như Web, FTP, mail…
Cách làm việ c c ủ a socket
3.3.1 Thuộc tính của socket Socket được định nghĩa dựa trên ba thành phần thuộc tính (attribute) đó là: vùng (domain), kiểu (type) và giao thức (protocol) Socket còn căn cứ vào một địa chỉ kết hợp với nó Địa chỉ này phụ thuộc vào vùng của socket và thường được gọi là dòng giao thức (protocol family) Ví dụ như dòng giao thức theo hệ thống file của Sun thường lấy tên file làm đường dẫn địa chỉ, trong khi giao thức TCP/IP lấy địa chỉ là số IP (32bit) để tham chiếu và thực hiện kết nối vật lý
Miền giao tiếp của socket xác định hạ tầng mạng nơi diễn ra giao tiếp của socket Miền giao tiếp socket phổ biến nhất là AF_INET, theo chuẩn Internet Chuẩn này sử dụng địa chỉ IP để xác định nút kết nối vật lý trên mạng Trong trường hợp giao tiếp cục bộ, có thể sử dụng miền giao tiếp theo chuẩn của Sun AF_UNIX, sử dụng đường dẫn và hệ thống file để đặt tên và xác định kết nối giữa nhiều ứng dụng.
Vùng AF_INET như đã nêu trên sử dụng địa chỉ IP (internet protocol) là một số 32 bits để xác định kết nối vật lý Số này thường được viết ở dạng nhóm như 192.168.1.1, 203.162.42.1 hay 127.0.0.1 Địa chỉ IP có thể được ánh xạ thành các tên dễ nhớ hơn như www.microsoft.com chúng còn được gọi là tên miền (domain
27 name) Việc ánh xạ địa chỉ IP thành tên miền thường do máy chủ DNS (Domain Name Server) thực hiện
Socket theo dòng IP sử dụng port (số hiệu cổng) để đặt tên cho một socket
Cổng dùng để phân biệt dữ liệu gửi đến sẽ chuyển cho ứng dụng nào Nếu địa chỉ IP dùng để xác định được máy hay nơi kết nối vật lý để đưa dữ liệu đến thì cổng (port) là địa chỉ phụ dùng để gửi chính xác đến nơi ứng dụng cần Điều này là do trên một máy có thể có nhiều ứng dụng cùng chạy và cùng sử dụng socket để giao tiếp Các ứng dụng trên cùng một máy không được sử dụng trùng số cổng Do cổng là một giá trị nguyên hai bytes nên có thể sử dụng hơn 65000 cổng để đặt cho socket Trừ các số hiệu cổng đã được mặc định như FTP, Web …
Mở một socket theo AF_INET như sau:
// tao socket sockfd = socket(AF_INET,SOCK_STREAM,0);
//dat ten gan dia chi ket noi cho socket theo giao thuc Ethernet address.sin_family_INET; address.sin_addr.s_addr=inet_addr("192.168.123.1"); address.sin_port = htons(502);
Ngoài vùng giao tiếp AF_UNIX và AF_INET còn có các vùng giao tiếp khác như AF_ISO dành cho chuẩn giao thức mạng theo ISO hay AF_NS dành cho hệ thống mạng Xerox, tuy nhiên chúng không được sử dụng phổ biến
Với mỗi vùng domain của socket có thể có nhiều cách giao tiếp Điển hình có hai kiểu giao tiếp đó là giao tiếp một chiều (SOCK_DGRAM) và giao tiếp bảo đảm hai chiều (SOCK_STREAM) Dữ liệu được chuyển đi được đóng thành từng gói (data package hay datagram) SOCK_DGRAM và SOCK_STREAM quy định cách chuyển gói dữ liệu theo hai cách như sau:
28 - SOCK_STREAM luôn giữ kết nối và đảm bảo gói thông tin gửi đi được chuyển đến đích và nhận đầy đủ Nơi nhận sau khi nhận xong dữ liệu sẽ gửi thông tin phản hồi cho nên gửi và quá trình gửi chỉ được xác nhận hoàn tất khi nhận được đầy đủ thông tin gửi nhận ở cả hai phía khách chủ Kiểu truyền dữ liệu socket này trong trong vùng giao tiếp mạng Ethernet AF_INET được gọi là giao thức truyền TCP Khi kết hợp với cơ chế định tuyến theo địa chỉ IP chúng được gọi tắt là TCP/IP Kết nối và truyền dữ liệu theo cách này tuy đảm bảo nhưng tốn nhiều tài nguyên của hệ thống do kết nối phải duy trì theo dõi thường xuyên
- SOCK_DGRAM cách gửi nhận dữ liệu này chỉ diễn ra một chiều Trình khách, nơi gửi dữ liệu đi không cần biết trình chủ (nơi nhận) có nhận được gói dữ liệu đầy đủ hay không Trình chủ khi nhận được dữ liệu cũng không cần thông báo hay xác nhận với trình khách là dữ liệu đã nhận xong Cách gửi này có vẻ không an toàn nhưng bù lại thực hiện nhanh và không tiêu tốn nhiều tài nguyên để duy trì kết nối và kiểm tra dữ liệu nhận gửi Kiểu truyền dữ liệu socket này trong vùng giao thức mạng Ithernet AF_INET được gọi là giao thức truyền UDP (User Datagram Protocol) khi kết hợp với cơ chế định tuyến theo địa chỉ IP chúng được gọi là giao thức truyền UDP/IP Do tính chất không đảm bảo nên UDP được dùng nhiều trong mạng với mục đích thông báo hay gửi tin đến một nhóm máy tính nào đó trong mạng Nó ít khi được dùng trong các dịch vụ cần sự chính xác cao như gửi nhận file hay kết nối cơ sở dữ liệu
3.3.2 Giao thức của socket (protocol)
Giao thức là cách qui ước gửi nhận dữ liệu giữa hai hay nhiều máy tính trong mạng Tuỳ theo mỗi kiểu gửi nhận dữ liệu mà ta có các giao thức khác nhau Hiện nay kiểu gửi nhận theo giao thức TCP và UDP là sử dụng nhiều nhất Tuy nhiên điều này không bắt buộc, TCP và UDP chỉ là cách cài đặt cho vùng socket AF_INET theo giao tiếp Ithernet.
Thiết lập kết nối mạng Ethernet trên socket unix
Hệ thống cung cấp hàm socket () để tạo mới một socket Hàm socket trả về số nguyên int cho biết số mô tả hay định danh dùng để truy cập socket sau này
Int socket (int domain, int type, int protocol);
Tham số domain chỉ định vùng hay họ địa chỉ áp đặt cho socket Domain có thể nhận một trong các giá trị sau:
AF_UNIX Mở socket kết nối theo giao thức file (xuất nhập socket dựa trên xuất nhập file) của UNIX AF_INET Mở socket theo giao thức Ithernet (sử dụng IP để kết nối) AF_IPX Vùng giao thức IPX (mạng Novell)
AF_ISO Chuẩn giao thức ISO AF_NS Giao thức Xerox Network System
Tham số type trong hàm socket () dùng chỉ định kiểu giao tiếp hay truyền dữ liệu của socket Ta có thể chỉ định hằng SOCK_STREAM dùng cho truyền dữ liệu đảm bảo hoặc SOCK_DGRAM dùng cho kiểu truyền không đảm bảo
Tham số protocol dùng để chọn giao thức áp dụng cho kiểu socket (trong trường hợp có nhiều giao thức áp dụng cho một kiểu truyền) ta chỉ cần đặt giá trị 0 (lấy giao thức măc định) AF_INET chỉ cài đặt một giao thức duy nhất cho các kiểu truyền đó là TCP và UDP
Nếu tạo socket thành công hàm sẽ trả về số định danh socket (descriptor) Ta sử dụng số định danh này trong tất cả các lời gọi truy xuất socket khác như read/write Đọc/ghi socket cũng đồng nghĩa với gửi và nhận dữ liệu giữa trình khách và trình chủ
30 3.4.2 Định địa chỉ cho socket
Khi socket đã được tạo, cần chỉ định địa chỉ và tên cho socket Một socket cần phải có địa chỉ và tên để các trình khách có thể tham chiếu đến Tuỳ mỗi vùng giao thức mà cách đánh địa chỉ sẽ khác nhau
Khi dùng vùng giao thức AF_UNIX dựa trên hệ thống tập tin, địa chỉ socket được định nghĩa trong cấu trúc sockaddr_un của file include sys/un.h như sau:
Struct sockaddr_un { sa_family_t sun_family; //
Dùng giao thức AF_INET cấu trúc địa chỉ được định nghĩa trong sockadd_in của file include netinet/in.h
Short in sin_family; /*AF_INET*/
Unsigned short int sin_port; /*số cổng*/
Struct in_addr sin_addr /*Địa chỉ IP*/ } Cấu trúc in_addr mô tả địa chỉ IP được định nghĩa như sau:
Struct in_addr { unsigned long int s_addr}
Như vậy địa chỉ IP là một số long (4bytes hay 32bits) Đây cũng chính là cấu trúc địa chỉ cho một chương trình giao tiếp với nhau qua mạng Inthernet
3.4.3 Đặt tên cho socket Sau khi đã định địa chỉ cần phải đặt tên cho socket Đối với AF_UNIX địa chỉ chính là đường dẫn còn tên là tên tập tin để tạo socket Đối với vùng giao thức AF_INET địa chỉ chính là số IP còn tên chính là số hiệu cổng (sin_port) trong cấu trúc socket_in Khi đã gán thông tin đầy đủ cho socket cần gọi hàm bind() để ràng buộc những thông tin này cho socket đã mở ra trước đó
31 Int bind (int socketd, const struct sockaddr *address, size_t address_len);
Hàm hệ thống bind () sử dụng các thông tin trong cấu trúc address để gán cho socket có số định danh socket trả về bởi hàm socket() trước đó Tham số address_len cho biết chiều dài của cấu trúc (struct sockaddr*)truyền vào hàm
Khi ràng buộc thành công bind () sẽ trả về giá trị 0 Nếu không sẽ trả về -1 và errno sẽ chứa một trong các lỗi sau:
EBADF Số mô tả file không hợp lệ ENOTSOCK Số mô tả file không dành cho socket EINVAL Số mô tả file tham chiếu đến một socket đã có EADDRNOTAVAIL Địa chỉ không xác định
EADDRIUSE Địa chỉ và cổng rang buộc đã bị một socket khác chiếm dụng EACCESS Không thể tạo file cho socket do không có quyền tạo file ENOTDIR,
Tên file không hợp lệ
3.4.4 Tạo hàng đợi cho socket Để đón nhận các kết nối chuyển đến socket trình chủ phải tạo ra một hàng đợi (queue) Mục đích của hàng đợi là lưu lại các kết nối chưa được trình chủ xử lý kịp
Hàm hệ thống listen () sẽ thực hiện công việc này
Int listen (int socketd, int backlog);
Tham số socket cho biết số mô tả socket cần tạo hàng đợi, backlog là số kết nối tối đa được phép đưa vào hàng đợi Nếu một kết nối đến trình chủ khi đã có backlog kết nối trước đó chưa xử lý thì kết nối này thất bại Lý do hàng đợi đã đầy trình chủ
32 server không muốn nhận thêm kết nối nữa thông thường backlog mang giá trị bằng 5 là số trung bình khả thi nhất
3.4.5 Chờ và chấp nhận kết nối Sau khi đã tạo hàng đợi để tiếp nhận kết nối, công việc sau cùng là chờ kết nối của trình khách gửi đến Hàm accept () sẽ thực hiện công việc này
Int accept (int socketd, struct sockaddr *address, size_t *address_len);
Hàm hệ thống accept() sẽ trả về khi có một trình khách muốn kết nối với ổ cắm được chỉ định bởi số mô tả ổ cắm Khi accept() phát hiện có ổ cắm trong hàng đợi, nó sẽ tự động lấy địa chỉ của máy khách đặt vào cấu trúc address và trả về chiều dài thực sự của cấu trúc địa chỉ trong biến address_len Tiếp đó, accept() sẽ tạo ra một ổ cắm vô danh Kết quả trả về của hàm accept() là số mô tả cho ổ cắm vô danh, số này có thể được sử dụng để liên lạc với trình khách Ổ cắm vô danh này có cùng kiểu với ổ cắm được đặt tên đang lắng nghe trên hàng đợi.
Giao thức truyền thông Modbus TCP
Modbus bắt nguồn trong cuối những năm 70 thế kỷ trước Năm 1979 khi nhà sản xuất PLC Modicon giờ là tập đoàn Schneider Electric's Telemecanique phát hành
37 giao diện truyền thông Modbus cho mạng multidrop dựa trên kiến trúc master/client
Truyền thông giữa các Modbus node có được bằng các thông điệp Nó làmột chuẩn mở mà được mô tả bằng cấu trúc thông điệp Ngày nay các chuẩn Modbus được sử dụng rộng rãi trong các hệ thống công nghiệp Ba phiên bản Modbus phổ biến nhất được sử dụng ngày nay là :
Các thiết bị hoạt động theo chuẩn Modbus sử dụng chế độ giao tiếp Master/Slave (Server/Client) Master (client) phát tín hiệu yêu cầu, Slave (Server) đáp ứng
Một hệ thống giao tiếp qua chuẩn Modbus TCP bao gồm nhiều thiết bị khác nhau
• Server và Client kết nối qua mạng TCP/IP
• Các thiết bị kết nối bên trong như Bridge, Router, Gateway… được sử dụng để kết nối TCP/IP và kết nối mạng phụ qua đường nối tiếp
Hình 3.2 :Cấu trúc mạng TCP/IP
38 Modbus TCP/IP đơn giản là Modbus truyền thông qua mạng Ethernet Trong mô hình mạng OSI, Modbus thuộc lớp ứng dụng (Application Protocol) Modbus TCP/IP sử dụng TCP/IP và Ethernet mang dữ liệu có cấu trúc giao tiếp giữa các thiết bị Có nghĩa là Modbus TCP/IP kết nối mạng vật lí (Ethernet), với chuẩn TCP/IP để mang dữ liệu Modbus
Hình 3.3 :Mô hình dữ liệu 5 lớp của Modbus TCP/IP
Trong quá trình truyền dữ liệu, gói dữ liệu Modbus sẽ được nhúng vào gói dữ liệu TCP/IP-Ethernet Modbus TCP sử dụng cổng 502 để tiếp nhận dữ liệu thông qua Ethernet.
Hình 3.4 :Cấu trúc gói dữ liệu Modbus TCP/IP 3.5.2 Đáp ứng thời gian (Determinism)
Thời gian đáp ứng là thước đo hiệu suất mạng, mô tả khả năng đáp ứng yêu cầu của hệ thống trong một khoảng thời gian xác định Nói cách khác, thời gian đáp ứng là khoảng thời gian trôi qua từ khi một hệ thống nhận được yêu cầu đến khi trả về phản hồi Giá trị này càng nhỏ thì hệ thống càng phản hồi nhanh và hiệu quả hơn.
39 thời gian có thể đoán trước Đối với các yêu cầu ứng dụng điều khiển, vấn đề thời gian đáp ứng là rất quan trọng
Về mặt lịch sử, ethernet truyền thống không nhằm mục đích phục vụ cho điều khiển công nghiệp, và các mạng I/O bởi vì 2 lý do chính: Thời gian đáp ứng không xác định, và tính bền vững thấp Tuy nhiên, các kỹ thuật mới được áp dụng hầu như đã giải quyết 2 vấn đề trên
Ban đầu, các thiết bị ethernet được thiết kế cho môi trường văn phòng, không phù hợp với điều kiện công nghiệp khắc nghiệt Tuy nhiên, nhiều cài đặt ethernet trong nhà máy vẫn hoạt động ổn định nhờ vào các thiết bị được chứng nhận công nghiệp, cáp bọc thép, switch gia cố và các Hub tăng cường khả năng chịu đựng của hệ thống trong điều kiện công nghiệp.
Với đặc điểm thời gian đáp ứng không xác định, Ethernet hoạt động theo giao thức ngẫu nhiên truy cập đường truyền với kiểm tra xung đột (CSMA/CD) Mỗi thiết bị sẽ thăm dò đường truyền trước khi gửi dữ liệu Khi xảy ra va chạm giữa các khung dữ liệu, cả hai khung dữ liệu sẽ bị hủy Các thiết bị phải đợi thời gian ngẫu nhiên và cố gắng truyền lại cho đến khi dữ liệu được gửi thành công Phương pháp này dẫn đến thời gian đáp ứng không xác định, vì thiết bị chỉ có thể truyền khi đường truyền rảnh, gây ra độ trễ không thể dự đoán Ngoài ra, độ trễ tín hiệu trên dây dẫn có thể gây ra va chạm, kéo theo chu kỳ phát lại hoặc cố gắng truyền lại.
Vì hầu hết các thiết bị điều khiển có một thời gian định nghĩa trước yêu cầu cho việc truyền một gói dữ lịêu, thông thường là dưới 100ms Khả năng đụng độ, và
40 phương pháp CSMA/CD được sử dụng để truyền dữ liệu được xem là đặc tính làm thời gian đáp ứng không xác định, và đây là lý do mà ethernet truyền thống đã có những vấn đề được thừa nhận trong việc sử dụng đối với các ứng dụng công nghiệp có sự đòi hỏi cao Tuy nhiên, các khuyết điểm của CSMA/CD tự nhiên mất đi trên các mạng mà thiết bị kết nối với nhau qua các switch Ethernet Đặc biệt là trong trường hợp một thiết bị được kết nối với một cổng của switch
Mạng ethernet được thiết kế với tính thời gian đáp ứng được bảo đảm thông qua sử dụng các switch ethernet tốc độ cao để kết nối các thiết bị Các switch này tăng băng thông của các mạng lớn bằng cách, chia chúng thành nhiều mạng nhỏ hơn hay nói cách khác là chia “vùng đụng độ” Nhờ vậy mà làm giảm các vụ đụng độ gói tin Các switch cũng tối thiểu hóa hiện tượng rung của mạng bằng cách giải quyết kết nối trực tiếp từ thiết bị gởi tới thiết bị nhận theo cách mà chỉ thiết bị nhận nhận dữ liệu, không phải tất cả thiết bị trên mạng
Vậy làm cách nào switch (hay các Hub chuyển mạch) hoạt động để bảo đảm thời gian đáp ứng của mạng ? Mỗi cổng trên switch đẩy dữ liệu tới cổng khác dựa trên địa chỉ MAC chứa trong gói/khung dữ liệu nhận được Thiết bị switch thực sự học, và chứa địa chỉ MAC của mỗi loại thiết bị được kết nối tới nó, cùng với số cổng kết nối với thiết bị tương ứng Bằng cách này, những đụng độ trên mạng ethernet có thể được nói là kết thúc tại cổng của switch, và switch là thiết bị hiệu quả để chia mạng thành những liên kết dữ liệu phân biệt riêng rẽ, hoặc vùng va chạm, trong đó một vùng kết nối với một cổng trên switch Khả năng của switch để định hướng gói tin tới cổng xác định, khác với đẩy nó tới tất cả các cổng trên switch, cũng giúp giảm, khử đụng độ là tác nhân làm mạng ethernet có thời gian đáp ứng không xác định
Với chi phí ngày càng giảm của các thiết bị chuyển mạch, xu hướng hiện nay trong các ứng dụng điều khiển công nghiệp đòi hỏi cao là kết nối thiết bị Ethernet với cổng trên thiết bị chuyển mạch Việc thiết kế mạng theo dạng hình sao với thiết bị chuyển mạch là trung tâm là cách hiệu quả Do chỉ có một thiết bị kết nối với mỗi cổng trên thiết bị chuyển mạch nên loại bỏ khả năng va chạm Đây là cách hiệu quả để giảm sự phụ thuộc vào phương pháp CSMA/CD.
41 một thiết bị mạng kết nối với một cổng trên switch, thiết bị switch có thể chạy song công, với không có cơ hội xảy ra đụng độ Vì thế, một 10/100 ethernet switch chạy một cách hiệu quả ở tốc độ 20/200 Mbps bởi vì nó có thể truyền và nhận ở tốc độ 10 hoặc 100 Mbps một cách đồng thời trong cả hai hướng (song công) Với tốc độ chuyển dữ liệu nhanh hơn của chế độ song công sẽ không cần sử dụng đến giải thuật CSMA/CD là giải thuật làm cho thời gian đáp ứng khó xác định hơn khi hoạt động, giúp cho các ứng dụng công nghiệp đòi hỏi cao vẫn giữ được tính tính toán được, và chính xác
Không may là, giao thông quảng bá trên một mạng công ty không thể hoàn thành bởi các thiết bị switch, và điều này có thể gây nên những đụng độ dẫn tới làm thời gian đáp ứng của kết nối mạng so với một thiết bị được kết nối trên một cổng của switch không thể xác định Tuy nhiên, nếu mạng công ty, mạng điều khiển và mạng I/O là riêng rẽ, không giao thông nào được thêm vào mạng điều khiển thì thời gian đáp ứng của mạng sẽ được bảo đảm Hơn nữa, nếu một cầu nối được sử dụng để chia thành 2 mạng, thì cầu nối có thể thông thường được cấu hình để lọc những giao thông không cần thiết
Hiện nay các mạng ethernet Gbit, 10 Gbit, 100 Gbit đã có trên thị trường, nên thời gian đáp ứng sẽ không còn là vấn đề
3.5.3 Modbus Protocol Frame truyền tổng quát của Modbus RTU :
Frame dữ liệu của Modbus TCP/IP :
42 Frame dữ liệu của Modbus truyền thống được nhúng vào TCP Frame, phần ERROR check và Address bị loại bỏ, thay vào là MBAP
Modbus Application Protocol (MBAP) Header MBAP có độ dài 7 byte, bao gồm :
• Transaction Identifier ( 2 byte ) : Để nhận biết yêu cầu khi có nhiều tin nhắn của cùng một Client gởi qua kết nối TCP mà không chờ ưu tiên
• Protocol Identifier (2 byte ) : Luôn có giá trị bằng 0
• Length Field ( 2 byte ) : Độ dài ( số byte ) cùa phần còn lại của frame dữ liệu, bao gồm cả byte Unit ID
• Unit ID ( 1 byte ) : Nhận biết Slave trên một kết nối Serial, thường được gán giá trị 00 hoặc FF
Trong mô hình mạng OSI, tầng ứng dụng có thể là FTP, HTTP, DNS … tùy theo mục đích sử dụng của chúng Còn trong Modbus TCP/IP tầng ứng dụng là Modbus
Dữ liệu Modbus có cấu trúc đơn giản, bao gồm 4 loại cơ bản sau :
43 Các thanh ghi giá trị Modbus trong các thiết bị được định địa chỉ như sau : Địa chỉ Giải thích
0xxxx Read/Write Discrete Output or Coil 1xxxx Read Discrete Input
3xxxx Read Input Register 4xxxx Read/Write Output or Holding Register
Tất cả địa chỉ trong gói dữ liệu Modbus đều bắt đầu từ 0 Ví dụ thanh ghi 40001 được đinh địa chỉ là 0000 trong frame truyền của Modbus
Code Chức năng Địa chỉ tham chiếu
MÔ HÌNH ỨNG DỤNG HỆ THỐNG NHẬN DẠNG VÂN TAY
Ứng dụng bảo mật bằng vân tay trong hệ thống SCADA
Hệ thống nhận dạng vân tay được tích hợp trên máy tính hoặc board ARM 9, kết nối với hệ thống SCADA qua mạng modbus TCP/IP Hệ thống này cho phép người dùng vận hành hệ thống nếu vân tay được nhận dạng chính xác; ngược lại, nếu vân tay không khớp thì người dùng không được phép điều khiển.
PLC m od bu s tc p/ ip USB
Hình 4.1 Sơ đồ kết nối hệ thống Các thiết bị trong hệ thống gồm:
• Đầu đọc dấu vân tay là một thiết bị sử dụng để chụp hình ảnh dấu vân tay đưa dữ liệu vào máy tính hay hệ thống nhúng để sử dụng trong các áp dụng nhận dạng Hiện nay có rất nhiều loại đầu đọc dấu vân tay trong hệ thống sử dụng đầu đọc dấu vân tay Futronic FS80 với các tính năng chính:
49 Chụp và gửi một hình ảnh dấu vân tay có độ phân giải 480x320 pixel, 500
Chỉ đọc dấu vân tay sinh học tránh các trường hợp giả mạo dấu vân tay bằng cao su, nilon, silicol …
Truyền dữ liệu qua cổng USB 2.0
Hoạt động trên các hệ điều hành Windown 2000/XP/Vista 32 bit và 64 bit, Linux, Windows CE 5.0 và 6.0
• Máy tính để đảm bảo giám sát và thu thập dữ liệu Màn hình giám sát có đặc điểm: LCD, TV/Monitor , máy tính chạy các trình ứng dụng SCADA được xây dựng trên phần mềm Vijeo citect truyền thông qua mạng Modbus TCP/IP có chức năng tạo giao diện, điều khiển, giám sát
Mini 2440 là 1 máy tính đơn bảng dựa trên vi xử lý ARM S3C2440 của Samsung
50 CPU: Samsung S3C2440A, 400MHz, Max 533Mhz
SDRAM; 64M SDRAM, 32bit DataBus, SDRAM Clock 100MHz Flash
64M or 128M Nand Flash, 2M Nor Flash,BIOS được cài đặt TFT 64K màu, 3.5 inches đến 12.1 inches, lên tới 1024x768 pixels 1 Ethernet 10/100M RJ-45(DM9000)
3 Serial Port 1 USB Host 1 USB Slave loại B 1 SD Card
1 Stereo Audio out, 1 Micro In; 1 PWM
Hổ trợ hệ điều hành - Linux 2.6
- Android - WinCE 5 and 6 Đặc trưng của các boar ARM – Tính chuyên dụng cao
– Ràng buộc về hoạt động trong chế độ thời gian thực
– Hạn chế về bộ nhớ, năng lượng, giá thành cao
Tuy nhiên, đòi hỏi hoạt động với độ tin cậy cao và tiêu tốn ít năng lượng
• Embedded Linux chạy trên vi xử lý ARM
Linux là một hệ điều hành mã nguồn mở (open-source OS) chạy trên hầu hết các kiến trúc vi xử lý, bao gồm dòng vi xử lý ARM Linux được hỗ trợ bởi một cộng đồng mã nguồn mở (GNU), chính điều này làm cho Linux rất linh hoạt và phát triển rất nhanh với nhiều tính năng không thua kém các hệ điều hành khác hiện nay
Tất cả các ứng dụng chạy trên hệ điều hành UNIX đều tương thích với Linux
51 Hầu hết các bản Linux đều hỗ trợ rất nhiều ngôn ngữ lập trình, đặc biệt công cụ GCC cho phép người lập trình có thể biên dịch và thực thi ứng dụng viết bằng nhiều ngôn ngữ lập trình khác nhau: C/C++, Java, v.v Ngoài ra, Linux còn hỗ trợ ngôn ngữ lập trình để phát triển các ứng dụng đồ họa như: JTK+, Qt, v.v
Ngoài hệ điều hành cho máy tính để bàn và máy chủ, các nhà cung cấp Linux còn cung cấp các phiên bản chuyên biệt cho các nhu cầu cụ thể Các bản này hỗ trợ nhiều kiến trúc máy tính khác nhau, hệ thống nhúng, hệ thống bảo mật và an ninh mạng.
Embedded Linux hiện đang phát triển mạnh và chiếm vị trí số 1 Hiện nay 40% các nhà thiết kế các hệ nhúng cân nhắc đầu tiên sử dụng Embedded Linux cho các ứng dụng mới của mình và sau đó mới đến các hệ điều hành nhúng truyền thống như Win CE Các đối thủ cạnh tranh của Embedded Linux hiện nay là các hệ điều hành nhúng tự tạo và Windows CE
Hình 4.3 Embedded Linux chạy trên ARM9 kit
Embedded Linux có sự phát triển vượt bậc là do có sức hấp dẫn đối với các ứng dụng không đòi hỏi thời gian thực như; các hệ server nhúng, các ứng dụng giá thành thấp và đòi hỏi thời gian đưa sản phẩm ra thị trường nhanh Mặt khác Linux là phần mềm mã nguồn mở nên bất kỳ ai cũng có thể hiểu và thay đổi theo ý mình
Linux cũng là một hệ điều hành có cấu trúc module và chiếm ít bộ nhớ trong khi
52 Windows không có các ưu điểm này
Bên cạnh các ưu điểm trên thì Embedded Linux cũng có các nhược điểm sau:
Embedded Linux không phải là hệ điều hành thời gian thực nên có thể không phù hợp với một số ứng dụng như điều khiển quá trình, các ứng dụng có các yêu cầu xử lý khẩn cấp
Embedded Linux thiếu một chuẩn thống nhất và không phải là sản phẩm của một nhà cung cấp duy nhất nên khả năng hỗ trợ kỹ thuật chưa cao
Với sự gia tăng mạnh mẽ của thị trường sản phẩm nhúng, các nhà sản xuất ngày càng sử dụng hệ điều hành nhúng để đảm bảo tính cạnh tranh cho sản phẩm Embedded Linux là hệ điều hành nhúng uy tín, chiếm vị trí số 1 thế giới Phần mềm nhúng đóng vai trò là linh hồn, trí tuệ của sản phẩm nhúng, góp phần nâng cao giá trị của sản phẩm.