3.2.1. Kiểm tra hoạt động của chƣơng trình con DISC
Để khảo sát chương trình con DISC có hoạt động tốt hay không. Chúng tôi tiến hành kiểm tra với một xung mẫu được tạo ra có tần số 1,5 Hz, biên độ 500 mV, độ rộng xung 160ns, khoảng cách giữa xung tín hiệu với xung trigger là 17,2 µs. Với mức ngưỡng được thiết lập ban đầu là 400. Dạng xung được ghi nhận bởi Oscillocope được biểu diễn trong hình 3.2.
Hình 3.2. Tín hiệu mẫu tạo ra từ máy phát xung được biểu diễn bởi Oscillocope Để kiểm tra chương trình con DISC có hoạt động tốt hay không. Tạm thời chúng tôi sẽ cắt dây truyền từ module FIFO_HIT lên biến HIT_FLAGS của module Formater. Đều này đồng nghĩa với việc xung tín hiệu sẽ được truyền lên tất cả mà không qua chọn lọc của module Formater. Xin nhắc lại rằng, chức năng của chương trình con DISC là để tính trung bình so với mức ngưỡng và tính giá trị slope để xét cạnh lên hay xuống của xung tín hiệu. Khi thỏa cả hai điều kiện giá trị trung bình nhỏ hơn ngưỡng và giá tri slope âm thì tín hiệu HIT_BITS nhảy lên 1 nếu không
27
thỏa thì có giá trị 0. Do đó tín hiệu HIT_BITS trong chương trình con DISC là một tập hợp logic (là những số 0 hoặc 1). Tín hiệu từ máy phát xung được đưa vào kênh FADC 00 của chương trình VMEFADC3. Dữ liệu xuất lên máy tính là những con số cụ thể (512số/xung). Từ những số liệu này chúng tôi dùng chương trình vẽ ROOT làm việc trên hệ điều hành Linux để vẽ xung tín hiệu cho 32 kênh tương ứng. Hình 3.3 biểu diễn xung tín hiệu cho 32 kênh được vẽ bởi ROOT.
Hình 3.3. Xung tín hiệu 32 kênh được vẽ bằng chương trình ROOT.
Như đã nói lúc đầu do chúng ta đã cắt dây nối từ FIFO_HIT lên biến HIT_FLAGS của module Fomarter. Do đó chương trình hoạt động giống như lúc chưa phát triển zero suppression. Mỗi kênh có 512 phần tử mỗi phần tử có 16bits, lại có thêm 32 bits cho ký tự bắt đầu và kết thúc mỗi kênh. Có 32 kênh và mỗi sự kiện sẽ được bắt đầu và kết thúc với 64 bit. Như vây tổng lượng dữ liệu mà chúng ta phải truyền lên máy tính khi không có zero suppression là (512×16+32)×32+64 = 263232bits.
28
Trong hình 3.3 có 32 hình nhỏ, mỗi hình nhỏ sẽ tương ứng với một kênh trong chương trình VMEFADC3 lần lượt tình từ trái sang phải. Hình nhỏ thứ nhất tương ứng với kênh FADC 00, biểu diễn xung tín hiệu từ máy phát xung. Hình nhỏ thứ hai có dạng một xung vuông nó biểu diễn cho tín hiệu HIT_BITS chỉ có giá trị 0 hoặc 1 nên có dạng xung vuông. Vùng xung vuông nhảy lên 1 tương ứng với đỉnh xung tín hiệu âm thỏa cả hai điều kiện giá trị trung bình nhỏ hơn ngưỡng và giá trị slope âm. Còn hình nhỏ thứ 5 (kênh thứ 4) có dạng xung rất giống với xung của kênh 0, đó là giá trị trung bình của kênh 0 được tính bởi chương trình con DISC. Cách tính trung bình đã được trình bày trong chương 2, do là trung bình của xung tín hiệu kênh 0 nên hình dáng xung ở kênh thứ tư sẽ giống với xung tín hiệu kênh 0. Lưu ý, sở dĩ kênh thứ nhất và kênh thứ tư có tín hiệu HIT_BITS và trung bình là do chúng tôi đã nối dây cho tín hiệu HIT_BITS và trung bình lần luợt được truyền lên kênh thứ nhất và kênh thứ tư tương ứng. Hình 3.4 là hình ảnh phóng to của xung tín hiệu ở kênh 0, kênh thứ nhất và kênh thứ tư của hình 3.3. Lần lượt tương ứng với tín hiệu từ máy phát xung, giá trị trung bình và tín hiệu HIT_BITS của module DISC.
Hình 3.4. Xung tín hiệu từ máy phát xung (kênh 0), giá trị trung bình (kênh 4) và
29
Với mục đích để kiểm tra xem chương trình con DISC có hoạt động tốt hay không. Kết quả xuất ra ở hình 3.3 và hình 3.4 cho thấy, chương trình con DISC đã hoạt động tốt trong việc xử lý tín hiệu xung vào để cho ra tính hiệu HIT_BIT và trung bình. Bước đầu kiểm tra đã thành công, bây giờ chúng tôi sẽ nối dây để tín hiệu HIT_BITS được truyền lên module Formater, để kiểm tra xem xung tín hiệu có được chọn lọc khi truyền lên máy tính hay không.
3.2.2. Kiểm tra hoạt động của chƣơng trình VMEFADC3
Với điều kiện thí nghiệm ban đầu, xung tín hiệu được đưa vào kênh 0 của thiết bị VMEFADC. Nếu chương trình phát triển zero supppression hoạt động tốt thì dữ liệu xuất ra trên máy tính sẽ thu được như trong hình 3.5.
Hình 3.5. Cấu trúc dữ liệu xuất ra trên máy tính khi đã phát triển chức năng zero
suppression
Trong hình 3.5 chỉ có kênh 0 là có tín hiệu truyền lên máy tính các kênh còn lại không có dữ liệu truyền lên mà chỉ có ký tự bắt đầu và kết thúc kênh. Dữ liệu của một sự kiện trong trường hợp này được tính như sau:
30 + Buffer số lượng mẫu 512.
+ Số kênh có tín hiệu là 1 (512×16=8192bits).
+ Số kênh không có tín hiệu là 31 kênh, các kênh này chỉ có ký tự bắt đầu (ff_số kênh) và kết thúc (ffaa) của một kênh chiếm 32 bits mỗi kênh (31×32 992bits). + Một mẫu 16bits.
+ Ký tự bắt đầu (ffff 55aa) và kết thúc (fffe fffc) sự kiện chiếm 64 bits. + Ký tự bắt đầu (ff_số kênh) và kết thúc (ffaa) của một kênh chiếm 32 bits.
Như vậy tổng lượng dữ liệu mà chúng tôi phải truyền lên trong trường hợp này là : 8192+992+64+32 = 9280bits. So sánh kết quả này với kết quả khi chúng tôi truyền hết dữ liệu của 32 kênh lên máy tính trong mục 3.2.1 thì tốc độ tăng lên xấp xỉ 28 lần. Từ số liệu xuất ra trên máy tính khi kiểm tra chức năng zero suppression. Chúng tôi sử dụng chương trình ROOT vẽ nên hình 3.6.
Hình 3.6. Xung tín hiệu 32 kênh được vẽ bằng chương trình ROOT khi đã phát
31
So sánh giữa Hình 3.6 và Hình 3.3, dễ dàng thấy rằng chức năng zero suppression mà chúng tôi phát triển đã hoạt động tốt đúng theo dự tính ban đầu. Do máy phát xung chỉ cung cấp xung tín hiệu cho kênh FADC 00 nên chỉ có kênh này được truyền lên các kênh còn lại (kênh 1 đến kênh 31) thì không được truyền lên máy tính.
3.2.3. Đánh giá
Bảng 3.1 khảo sát tốc độ truyền dữ liệu lên máy tính theo biến thiên của số kênh. Tốc độ này được tính theo công thức 3.1 với giả sử ban đầu tốc độ truyền dữ liệu lên cổng LAN là lý tưởng (108bits/giây).
Tốc độ =
(3.1)
Trong đó :
108 (bits/giây) là tốc độ truyền dữ liệu của cổng LAN lên máy tính. 16 là số bits của một phần tử dữ liệu trong một mảng.
512 là số phần tử của một mảng.
16×512×số_kênh là số bits dữ liệu của một sự kiện không bao gồm các ký tự mặc định.
64 là số bits của các ký tự mặc định được sử dụng để cho biết việc bắt đầu (ffff 55aa-32bits) và kết thúc (fffe fffc-32bits) của một sự kiện.
32×32 là số bits của các ký tự mặc định được sử dụng để nhận dạng việc bắt đầu (ff_số_kênh-16bits) và kết thúc (ffaa-16bits) một kênh của 32 kênh. 16×512×số_kênh+64+32×32 là tổng số bits truyền lên của một sự kệnh.
32
Bảng 3.1. Số sự kiện theo số kênh
Từ công thức 3.1 với giả sử rằng tốc độ truyền dữ liệu lên máy tính là lý tưởng (108bit/giây) ta thấy rằng, tốc độ truyền lên cổng LAN tỷ lệ nghịch với số kênh. Để thấy rõ được sự suy giảm tốc độ truyền theo số bit, từ số liệu của Bảng 3.1 chúng tôi vẽ được hình 3.7.
Số kênh Số sự kiện/giây Số kênh Số sự kiện/giây
1 10776 17 712 2 5723 18 673 3 3897 19 638 4 2954 20 606 5 2378 21 578 6 1990 22 552 7 1711 23 528 8 1501 24 506 9 1337 25 486 10 1205 26 467 11 1096 27 450 12 1006 28 434 13 930 29 419 14 864 30 405 15 807 31 392 16 757 32 380
33
Hình 3.7. Sự suy giảm tốc độ truyền qua cổng LAN theo số kênh
Dữ liệu truyền lên máy tính càng lớn thì tốc độ truyền càng chậm, đều đó đồng nghĩa với việc thời gian chết sẽ lớn. Kết quả đánh giá hoạt động của chương trình VMEFADC3 khi đã phát triển chức năng zero suppression cho thấy, khi cho xung tín hiệu mẫu được tạo ra từ máy phát xung đi vào duy nhất kênh FADC 00 thì tốc độ truyền dữ liệu lên máy tính tăng 28 lần so với chương trình cũ (truyền cả 32 kênh). Do đó, phát triển chức năng zero suppression trong chương trình VMEFADC3 có một ý nghĩa vô cùng quang trọng, đều đó không những giúp giảm thời gian chết mà việc loại bỏ những xung không có ý nghĩa về mặt vật lý còn góp phần làm giảm đáng kể tài nguyên bộ nhớ.
0 2000 4000 6000 8000 10000 12000 0 10 20 30 40 sự kiện/giây kênh số sự kiện truyền theo số kênh
34
KẾT LUẬN VÀ KIẾN NGHỊ KẾT LUẬN
Khóa luận đã tìm hiểu về dự án E36 (nghiên cứu tính chất của lepton và hạt neutrino nặng hiếm), cách tạo ra chùm tia K+ từ hệ thống máy gia tốc tại trung tâm gia tốc proton cho nghiên cứu chuyên sâu tại Nhật Bản. Cũng như hiểu được cách ghi nhận bức xạ hãm từ hệ thống 768 đầu dò CsI, quá trình lưu trữ và xử lý xung tín hiệu trên 24 bo mạch VMEFADC được sử dụng trong dự án E36 .
Trong khóa luận này chúng tôi đã đạt được yêu cầu đặt ra là phát triển thành công chức năng zero suppression dựa vào chương trình VMEFADC3 đã có sẵn. Sử dụng công nghệ nhúng FPGA kết hợp với bộ chuyển đổi Flash-ADC (10 bit, 100MHz) 32 kênh để loại bỏ những xung tín hiệu không có ý nghĩa về mặt vật lý được truyền lên máy tính. Việc phát triển dựa trên xây dựng hai chương trình con DISC và FIFO_HIT nằm trong module FRONTEND.
Sau khi phát triển zero suppression, tiến hành kiểm tra hoạt động của chương trình VMEFADC3, bằng xung tín hiệu mẫu được tạo ra từ máy phát xung. Đầu ra của máy phát xung được nối với kênh FADC 00 của thiết bị VMEFADC được nhúng chương trình đã phát triển zero suppression. Kết quả chúng tôi thấy rằng, tốc độ truyền cho một kênh vào có tín hiệu tăng 28 lần so với chương trình chưa có chức năng zero suppression (truyền dữ liệu lên cả 32 kênh).
KIẾN NGHỊ
Tiến hành khảo sát tốc độ thực tế truyền dữ liệu lên máy tính của chương trình VMEFADC3 đã phát triển chức năng zero suppression, khi cho xung tín hiệu vào một kênh bất kỳ trên tổng số 32 kênh và tiến hành thay đổi tần số của xung tín hiệu.
Kiểm tra hoạt động của chương trình VMEFADC3 bằng cách cho xung tín hiệu vào cả 32 kênh, mỗi sự kiện tương đương với một kênh có tín hiệu một cách ngẩu nhiên.
35
TÀI LIỆU THAM KHẢO Tiếng Anh
[1] C. Rangacharyulu and R. Pywell…, J-PARC Experimental Proposal
Measurement of and Search for heavy sterile neutrinos
using the TREK detector system, J-PARC TREK Collaboration, 2010.
[2] Christian Baumann (2010), Field Programmable Gate Array (FPGA),
University of Innbruck, Austria.
[3] Glenn F. Knoll (1999), Radiation Detection and Measurement – Third
Edition, John Wiley & Sons, Inc., USA.
[4] Michael Kohl (2013), The TREK/E36 Experiment at J-PARC , Workshop to
Explore Physics Opportunities with Intense, Polarized Electron Beams up to 300 MeV(PEB2013), MIT, Cambridge, MA.
[5] Sebastian Hoyos (2009), Flash-ADC, Texas A&M University, USA.
[6] Vo Hong Hai, Zero Suppression Development on VMEFADC Moudule for Readout of CsI(Tl) detector, VMEFADC meeting, 24 March 2014.
[7] Vo Hong Hai, Zero Suppression Development on VMEFADC Moudule for Readout of CsI(Tl) detector, VMEFADC meeting, 9 June 2014.
Website [8] Xilinx homepape. http://www.xilinx.com/products/silicon-devices/fpga/spartan-6/ http://www.xilinx.com/fpga/index.htm [9] http://j-parc.jp/index-e.html [10] http://trek.kek.jp/e36/index.html
36
PHỤ LỤC
37
Phụ lục 2 : Code của chƣơng trình con DISC dùng để so sánh tín hiệu vào với ngƣỡng và tính giá trị slope cho một kênh.